使用matplotlib

时间:2018-04-29 01:35:49

标签: python matplotlib

我有一个数据文件,其中包含2,000,000个数据点(x,y,z),我正在尝试将信息的表面贴图写入纸张。它最终给我的图表看起来可能有10个数据点,而不是我需要的全部潜在能量表面。我需要做些什么来获得更好的图表。

这是我的代码:

with open("surfaceinfo.dat", "rb") as f:
    CN_data = pickle.load(f)
    CC_data = pickle.load(f)
    energy = pickle.load(f)

plotx,ploty, = np.meshgrid(np.linspace(np.min(CN_data),np.max(CN_data),10),
                           np.linspace(np.min(CC_data),np.max(CC_data),10))
plotz = interp.griddata((CN_data,CC_data),energy(plotx,ploty),method='linear')
plotz = np.nan_to_num(plotz)

fig = plt.figure()
ax = fig.gca(projection='3d')

colormap = plt.cm.bwr
surf = ax.plot_surface(plotx,ploty,plotz,cmap=colormap,linewidth=0,antialiased=False)

fig.colorbar(surf)

plt.savefig('mapping40,000')

plt.show()

1 个答案:

答案 0 :(得分:0)

linspace函数的第三个参数是你想要的点数。在你的代码中,这个值是10.所以你的表面将有10x10点。更改该参数以设置曲面上的点数。