将圆柱体添加到绘图
发布于 2021-01-29 16:56:25
我想在我的3D散点图中添加一个透明圆柱体。我该怎么做?
这是我用来绘制情节的代码:
fig = plt.figure(2, figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')
ax.scatter(X, Y, Z, c=Z,cmap=plt.cm.Paired)
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_zlabel("Z")
plt.xticks()
关注者
0
被浏览
163
1 个回答
-
一种可能的方法是使用
plot_surface
。适应给出的解决方案在这篇博客文章则有import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # Scatter graph N = 100 X = np.random.uniform(-1, 1, N) Y = np.random.uniform(-1, 1, N) Z = np.random.uniform(-2, 2, N) ax.scatter(X, Y, Z) # Cylinder x=np.linspace(-1, 1, 100) z=np.linspace(-2, 2, 100) Xc, Zc=np.meshgrid(x, z) Yc = np.sqrt(1-Xc**2) # Draw parameters rstride = 20 cstride = 10 ax.plot_surface(Xc, Yc, Zc, alpha=0.2, rstride=rstride, cstride=cstride) ax.plot_surface(Xc, -Yc, Zc, alpha=0.2, rstride=rstride, cstride=cstride) ax.set_xlabel("X") ax.set_ylabel("Y") ax.set_zlabel("Z") plt.show()
我添加了一些最小的表面配置,可以通过查阅docs来实现更好的配置。