[英]Contour plot of 2D Numpy array in Python
我的目标是在 Python 中为使用 Fortran 导入和创建的 (100,100) 数组获取等高线图。
我通过以下方式从 Fortran 导入数组:
x=np.linspace(0.02,10,100), y=np.linspace(0.47,4,100)
f = (np.fromfile(('/path/result.dat'
), dtype=np.float64).reshape((len(x), len(y)), order="F"))
因此,结果取决于 x 和 y,并为 x 和 y 的每个组合给出一个值。 如何创建相应的等高线图? 到目前为止,我尝试的是:
X, Y= np.meshgrid(x, y)
plt.contourf(X, Y, f, colors='black')
plt.show()
但是生成的等值线图显示的值没有意义。 我也试过 imshow() 但它没有用。 如果你能帮助我,我将不胜感激!
X
、 Y
和f
的排列在这里起作用。 但是,如果不查看result.dat
是如何生成的,就很难回答这个问题。 直觉告诉我, f(x,y)
的值可能与网格不匹配。
可能会出现不正确的值,因为X
和Y
的值不对应于f
的值。 尝试order = "C"
或order = "A"
。 此外,您的x
和y
应该在重塑数据之前真正定义。
x=np.linspace(0.02,10,100)
y=np.linspace(0.47,4,100)
f = np.fromfile(('/path/result.dat'), dtype=np.float64).reshape((len(x), len(y)), order="<>")
如果这不起作用,也许可以尝试重新排序X
和Y
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.