使用colourbar的3D曲面图问题

时间:2016-02-02 15:20:49

标签: python matplotlib plot surface colorbar

我试图绘制x = y平面上晶体的电荷密度值。我已经能够绘制电荷密度的等高线图和线框(下图)

Wiremesh

但它看起来有点乱。我想制作一个表面图,这样你就可以看到水晶中的原子更好(而不是能够看到电线图)。

当我使用代码(本说明书的底部)时,我得到下面的图片:

Surface plot no colourbar

这显然没有颜色变化。我在这做错了什么?任何帮助都会很棒!

以下代码。注意功能" chgdens2"计算平面中各点的电荷密度值。

fig = pyplot.figure()
x = numpy.linspace(-0.5*A,0.5*A,10) #Range of x vals 
z = numpy.linspace(-0.5*A,0.5*A,10) #Range of z vals
p = numpy.sqrt(2) * x
P, Z = numpy.meshgrid(p,z)
DENS = numpy.zeros((len(p), len(z)),dtype=numpy.float32)

for i in range (len(p)):
    for j in range(len(z)):
        DENS[i, j] = chgdens2(N,n,numpy.array([x[i],x[i],z[j]]),m)

ax = fig.gca(projection='3d')
surf = ax.plot_surface(P,Z,DENS, cmap=cm.coolwarm,
                   linewidth=0, shade=True)
fig.colorbar(surf, shrink=0.5, aspect=5)
pyplot.show()

1 个答案:

答案 0 :(得分:0)

如果你在你的ax.plot_surface()函数中添加rstride = 1,cstride = 1会有效吗?