Python:3个列表的二维等高线图

2024-07-04 05:34:55 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是本帖的后续: Python : 2d contour plot from 3 lists : x, y and rho?

我基本上复制了如下所示的代码,但发现我的应用程序还存在两个问题:

  1. 可能是因为z数据非常接近,所以我得到了一个类似a plot here的图,这似乎不正确。在
  2. 我还想画一张x,y范围从-50到50的地图,这可能需要外推? 有人能帮忙吗?谢谢!在

def contour2d(xlist, ylist, zlist):

    x = np.array(xlist)
    y = np.array(ylist)
    z = np.array(zlist)    
    xi, yi = np.linspace(x.min(), x.max(), 100), np.linspace(y.min(), y.max(), 100)
    xi, yi = np.meshgrid(xi, yi)

    rbf = scipy.interpolate.Rbf(x, y, z, function='linear')
    zi = rbf(xi, yi)
    print zi

    plt.imshow(zi, vmin=z.min(), vmax=z.max(), origin='lower',
           extent=[x.min(), x.max(), y.min(), y.max()])

    plt.scatter(x,y,c=z)
    plt.colorbar()
    plt.show()

x = [0,20.506,20.506,-20.506,-20.506,41.012,41.012,-41.012,-41.012]
y = [0,-20.506,20.506,20.506,-20.506,-41.012,41.012,41.012,-41.012]
z = [1.45905, 1.45874, 1.45861, 1.45914, 1.45909, 1.4584, 1.45793, 1.45883, 1.45863]
contour2d(x,y,z)

Tags: plotnppltminarraymaxyixi

热门问题