繁体   English   中英

Matplotlib:使用pcolormesh平移和缩放时慢速重绘

[英]Matplotlib: slow redrawing when panning and zooming with pcolormesh

我正在尝试使用plt.pcolormesh绘制一个1000x1000点的颜色plt.pcolormesh 它可以工作,但其平移和缩放速度却比地狱慢:仅提供1 fps。

有没有办法加快速度?

这是我的简单代码:

import matplotlib
import matplotlib.pyplot as plt

import numpy as np

r_array = np.linspace(0, 2, 1000)
phi_array = np.linspace(0, 2 * np.pi, 1000)

r_grid, phi_grid, = np.meshgrid(r_array, phi_array)


z_grid = r_grid + phi_grid
x_grid = r_grid * np.cos(phi_grid)
y_grid = r_grid * np.sin(phi_grid)

plt.pcolormesh(x_grid, y_grid, z_grid)
plt.show()

也许这只是为了降低速度而换来另一个速度,但是仅使用scipy.interpolate.griddata将您的数据转换成简单的图像矩阵呢? 计算需要一段时间,但是平移和缩放非常快。

import matplotlib.pyplot as plt
import numpy as np
import scipy.interpolate

fig,axs = plt.subplots(1,2,figsize=(8,4))

r_array = np.linspace(0, 2, 400)
phi_array = np.linspace(0, 2 * np.pi, 400)

r_grid, phi_grid, = np.meshgrid(r_array, phi_array)

z_grid = r_grid + phi_grid
x_grid = r_grid * np.cos(phi_grid)
y_grid = r_grid * np.sin(phi_grid)

x = np.linspace(np.min(x_grid),np.max(x_grid),500)
y = np.linspace(np.min(y_grid),np.max(y_grid),500)

X,Y = np.meshgrid(x,y)

data1 = scipy.interpolate.griddata((x_grid.ravel(),y_grid.ravel()),z_grid.ravel(),(X,Y),method='linear')
data2 = scipy.interpolate.griddata((x_grid.ravel(),y_grid.ravel()),z_grid.ravel(),(X,Y),method='nearest')

extent = (np.min(x_grid),np.max(x_grid),np.min(y_grid),np.max(y_grid))
axs[0].imshow(data1,interpolation='nearest',aspect='auto',extent=extent)
axs[1].imshow(data2,interpolation='nearest',aspect='auto',extent=extent)

axs[0].set_title('griddata, method=\'linear\'')
axs[1].set_title('griddata, method=\'nearest\'')

plt.tight_layout()

plt.show()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM