这个问题与Set size of matplotlib figure with 3d subplots有关。
这里有一个例子代码。
fig = plt.figure()
fig.set_size_inches(10, 4)
ax = fig.gca(projection='3d')
上面的代码是我在2019年用于创建3D图的代码。
从matplotlib 3.4开始,使用关键字参数调用gca()已被弃用。
此外,3D轴不再适合图形尺寸。
下面是matplotlib 3.4.3的一个例子。
fig = plt.figure()
fig.set_size_inches(10, 4)
ax = plt.subplot(1, 1, 1)
fig = plt.figure()
fig.set_size_inches(10, 4)
ax = plt.subplot(1, 1, 1, projection='3d')
结果如下。
尽管旧版本的matplotlib可以自动将3D轴拟合到图形中(很抱歉,我没有保存确切的版本号),但当前的matplotlib-3.4.3版本不再将3D轴拟合到图形大小中了。
我知道我可以按照set matplotlib 3d plot aspect ratio?中的建议使用Axes3D.set_box_aspect()
。但是,很难找到精确的长宽值来使轴适合于体形大小。autoscale()
在这种情况下也没有帮助。
总之,问题是:是否有任何方法(1)自动将三维轴拟合到图形中(或改变三维轴的大小)(2)并防止边缘空间?
1条答案
按热度按时间d6kp6zgx1#
回答我自己的问题:
因为这个问题并不吸引用户,所以在这里我为其他遭受同样问题困扰的人发布了一个简单(但不恰当)的答案。
解决这个问题的最简单方法是将matplotlib降级到3.2(在我的例子中是3.2.2)。
结果如下所示。