我试图在mplot3d图中创建一个接触所有轴墙的平面。轴限制使用ax.set_xlim(-6.0,6.0)
或ax,set_xlim3d(-6.0,6.0)
设置。在这两种情况下,墙壁都略微超出规定的限制。使用Poly3DCollection
绘制我的平面会导致平面绘制正确,但是,它不会触碰轴墙。
我正在使用(网格和墙壁的颜色设置作为我屏幕上的默认颜色,至少看起来很轻,因此模糊了“功能”)
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
ax.set_xlim(-6.0, 6.0)
ax.set_ylim(-6.0, 6.0)
ax.set_zlim(-1.0, 1.0)
ax.w_xaxis.set_pane_color((.85, .85, .85, 1.0))
ax.w_yaxis.set_pane_color((.85, .85, .85, 1.0))
ax.w_zaxis.set_pane_color((.85, .85, .85, 1.0))
ax.w_xaxis._axinfo.update({"grid": {"color": (.7, .7, .7, 1)}})
ax.w_yaxis._axinfo.update({"grid": {"color": (.7, .7, .7, 1)}})
ax.w_zaxis._axinfo.update({"grid": {"color": (.7, .7, .7, 1)}})
x = [-6,6,6,-6]
y = [-6,-6,6,6]
z = [0,0,0,0]
verts = [zip(x,y,z)]
collection = Poly3DCollection(verts)
collection.set_color("green")
ax.add_collection3d(collection)
plt.tight_layout()
plt.show()
我已经在这里搜索了一个解决方案,发现有两个帖子有相同的“问题”(question 1和question 2),遗憾的是这两个帖子目前尚未解决。
我怎样才能实现飞机接触外墙 a)通过将壁限制在轴的设定极限或 b)通过扩大我的飞机确实包括那个额外的小空间?