我想使用matplotlib绘制二维场数据。基本上,我想要类似于这个的东西:
在我的实际情况中,我有一个存储在硬盘上的文件中的数据。但是为了简单起见,考虑函数z = f(x,y)。我希望得到一个平滑的二维图,其中使用颜色来可视化z值。我使用以下代码进行绘图:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-1, 1, 21)
y = np.linspace(-1, 1, 21)
z = np.array([i*i+j*j for j in y for i in x])
X, Y = np.meshgrid(x, y)
Z = z.reshape(21, 21)
plt.pcolor(X, Y, Z)
plt.show()
然而,我得到的图很粗糙。有没有一种非常简单的方法来平滑这个图?我知道使用“surface”图类似的东西是可能的,但是那些是3D的。我可以改变摄像机角度来获得2D表示,但我相信有更简单的方法。我也尝试了“imshow”,但那时我必须在“graphic”坐标中思考,其中原点在左上角。问题已解决
我成功解决了我的问题,使用以下命令: plt.imshow(Z,origin='lower',interpolation='bilinear')
imshow
有这种能力。我能否使用pcolor
做类似的事情? - Aeronaelius