gpt4 book ai didi

python - matplotlib 中的曲面和 3d 轮廓

转载 作者:太空狗 更新时间:2023-10-29 19:28:35 25 4
gpt4 key购买 nike

我想使用 matplotlib 绘制一个带有颜色图、线框和等高线的表面。像这样:

enter image description here

请注意,我不是在询问位于与 xy 平行的平面内的轮廓,而是图像中3D 和白色 的轮廓。

如果我采用天真的方式绘制所有这些东西,我将看不到轮廓(请参见下面的代码和图片)。

import numpy as np
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")
X, Y = np.mgrid[-1:1:30j, -1:1:30j]
Z = np.sin(np.pi*X)*np.sin(np.pi*Y)
ax.plot_surface(X, Y, Z, cmap="autumn_r", lw=0.5, rstride=1, cstride=1)
ax.contour(X, Y, Z, 10, lw=3, cmap="autumn_r", linestyles="solid", offset=-1)
ax.contour(X, Y, Z, 10, lw=3, colors="k", linestyles="solid")
plt.show()

enter image description here

如果为表面小平面添加透明度,那么我可以看到轮廓,但它看起来真的很杂乱(请参见下面的代码和图片)

import numpy as np
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")
X, Y = np.mgrid[-1:1:30j, -1:1:30j]
Z = np.sin(np.pi*X)*np.sin(np.pi*Y)
ax.plot_surface(X, Y, Z, cmap="autumn_r", lw=0.5, rstride=1, cstride=1, alpha=0.5)
ax.contour(X, Y, Z, 10, lw=3, cmap="autumn_r", linestyles="solid", offset=-1)
ax.contour(X, Y, Z, 10, lw=3, colors="k", linestyles="solid")
plt.show()

enter image description here

问题:有没有办法在matplotlib中得到这个结果?不过,阴影不是必需的。

最佳答案

显然这是一个错误,如果你尝试这个

import numpy as np
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")
X, Y = np.mgrid[-1:1:30j, -1:1:30j]
Z = np.sin(np.pi*X)*np.sin(np.pi*Y)


ax.plot_surface(X, Y, Z, cmap="autumn_r", lw=0, rstride=1, cstride=1)
ax.contour(X, Y, Z+1, 10, lw=3, colors="k", linestyles="solid")
plt.show()

然后旋转一圈,你会看到轮廓线在不该消失的时候消失了

关于python - matplotlib 中的曲面和 3d 轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35445424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com