Matplotlib的 contour() 函数要求将数据排列为点的2D网格以及每个网格点的相应网格值 . 如果您的数据自然排列在网格中,您可以将r,theta转换为x,y并使用 contour(r*np.cos(theta), r*np.sin(theta), values) 来制作您的绘图 .
如果您的数据不是't naturally gridded, you should follow Stephen'的建议,并使用 griddata() 将数据插入到网格中 .
以下脚本显示了两者的示例 .
import pylab as plt
from matplotlib.mlab import griddata
import numpy as np
# data on a grid
r = np.linspace(0, 1, 100)
t = np.linspace(0, 2*np.pi, 100)
r, t = np.meshgrid(r, t)
z = (t-np.pi)**2 + 10*(r-0.5)**2
plt.subplot(121)
plt.contour(r*np.cos(t), r*np.sin(t), z)
# ungrid data, then re-grid it
r = r.flatten()
t = t.flatten()
x = r*np.cos(t)
y = r*np.sin(t)
z = z.flatten()
xgrid = np.linspace(x.min(), x.max(), 100)
ygrid = np.linspace(y.min(), y.max(), 100)
xgrid, ygrid = np.meshgrid(xgrid, ygrid)
zgrid = griddata(x,y,z, xgrid,

本文展示了如何使用Python的Matplotlib库在Java环境中绘制等高线图。通过contour()函数,可以将2D网格数据转换为等高线图。当数据非网格化时,可以借助griddata()函数重新进行网格化处理,然后绘制。示例代码包括了数据网格化和非网格化的等高线图绘制方法。
最低0.47元/天 解锁文章
1825

被折叠的 条评论
为什么被折叠?



