Matplotlib matplotib 3D图形,显示正确隐藏零件的曲面和轮廓?

Matplotlib matplotib 3D图形,显示正确隐藏零件的曲面和轮廓?,matplotlib,3d,contour,Matplotlib,3d,Contour,我想使用mplot3D的plot_surface和contour3D功能绘制一个曲面及其一些iso-z轮廓。下面是一个例子(我想用它来说明物理学中的拉格朗日点): 在结果图中,等高线无法正确显示: 当图形以交互方式旋转时,它们会随机出现和消失,并错误估计曲面应隐藏的部分: 4年前就注意到了这一点,但没有提出解决方案。因此,我的问题是: 4年后,它是否仍然被视为matplolib绘图能力的限制?还有其他方法吗,使用其他图形库?是的,这仍然是matplotlib 3D功能的一个限制(实际上只有2

我想使用mplot3D的plot_surface和contour3D功能绘制一个曲面及其一些iso-z轮廓。下面是一个例子(我想用它来说明物理学中的拉格朗日点):

在结果图中,等高线无法正确显示:

当图形以交互方式旋转时,它们会随机出现和消失,并错误估计曲面应隐藏的部分:

4年前就注意到了这一点,但没有提出解决方案。因此,我的问题是:
4年后,它是否仍然被视为matplolib绘图能力的限制?还有其他方法吗,使用其他图形库?

是的,这仍然是matplotlib 3D功能的一个限制(实际上只有2.5D)。好的,谢谢!这对我来说是一个可以接受的答案:)你知道还有其他真正的3D图形库吗?在这种情况下,matplotlib。非常好,完美的答案,谢谢!是的,这仍然是matplotlib 3D功能的一个限制(实际上只有2.5D)。好的,谢谢!这对我来说是一个可以接受的答案:)你知道还有其他真正的3D图形库吗?在这种情况下,matplotlib。非常好,完美的答案,谢谢!
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

epsilon, r1 = 0.3, 1
r2 = epsilon*r1
Omega2 = 1/(r1*pow(r1+r2, 2))

u = np.linspace(-2, 2, 100)
x , y = np.meshgrid(u, u)
z = -epsilon/np.sqrt(np.power(x-r1, 2)+ np.power(y, 2)) - 1/np.sqrt(np.power(x+r2, 2)+ np.power(y, 2)) - 0.5*Omega2*(np.power(x, 2) + np.power(y, 2))
z = np.clip(z, -3, 0)

ax.plot_surface(x, y, z, rstride=1, cstride=1, antialiased=True, color="whitesmoke")
ax.contour3D(x, y, z+0.01, levels=np.arange(-2, -1, 0.1))
plt.show()