带colorb的三维曲面打印问题

2024-05-14 08:46:20 发布

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

我试图在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()

Tags: of代码numpylenfig绘制range平面

热门问题