我试图绘制x = y平面上晶体的电荷密度值。我已经能够绘制电荷密度的等高线图和线框(下图)
但它看起来有点乱。我想制作一个表面图,这样你就可以看到水晶中的原子更好(而不是能够看到电线图)。
当我使用代码(本说明书的底部)时,我得到下面的图片:
这显然没有颜色变化。我在这做错了什么?任何帮助都会很棒!
以下代码。注意功能" 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()
答案 0 :(得分:0)
如果你在你的ax.plot_surface()函数中添加rstride = 1,cstride = 1会有效吗?