【发布时间】:2019-07-14 22:43:27
【问题描述】:
这是一个简单的例子:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
f = fig.add_subplot(2, 1, 1, projection='3d')
t = fig.add_subplot(2, 1, 2, projection='3d')
# axes
for d in {f, t}:
d.plot([-1, 1], [0, 0], [0, 0], color='k', alpha=0.8, lw=2)
d.plot([0, 0], [-1, 1], [0, 0], color='k', alpha=0.8, lw=2)
d.plot([0, 0], [0, 0], [-1, 1], color='k', alpha=0.8, lw=2)
f.dist = t.dist = 5.2 # 10 is default
plt.tight_layout()
f.set_aspect('equal')
t.set_aspect('equal')
r = 6
f.set_xlim3d([-r, r])
f.set_ylim3d([-r, r])
f.set_zlim3d([-r, r])
t.set_xlim3d([-r, r])
t.set_ylim3d([-r, r])
t.set_zlim3d([-r, r])
f.set_axis_off()
t.set_axis_off()
plt.draw()
plt.show()
这是我得到的:
这就是我想要的:
换句话说,我希望地块本身具有正方形的纵横比,而不是像这样展开:
感谢https://stackoverflow.com/a/31364297/125507
但我希望查看这些图的窗口是矩形的,顶部和底部被裁剪掉(因为顶部和底部只有空白,并且我正在生成多个动画 GIF,所以我不能轻易发布- 加工成我想要的形状)。
基本上我正在制作这个动画,我想要同样的东西,但没有所有的空白:
【问题讨论】:
-
我不认为你的例子有足够的代表性,你试过
fig.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)吗? -
除此之外,你需要收紧你的
r -
@rll 是的,我缩短了我真正想要的轴,以说明它们都是相同的长度
-
我为此添加了赏金,但仍然没有答案。我需要说得更清楚些吗?
标签: python matplotlib aspect-ratio mplot3d