我正在尝试绘制晶体在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()发布于 2016-02-03 01:29:18
如果您将rstride=1,cstride=1添加到ax.plot_surface()函数中,它会起作用吗?
https://stackoverflow.com/questions/35157263
复制相似问题