【问题标题】:matplotlib: fit 3d plot into the fixed-sized figurematplotlib:将 3d 图适合固定大小的图形
【发布时间】:2021-11-24 05:09:27
【问题描述】:

这个问题与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)自动将 3D 轴拟合到图中(或者,改变 3D 轴的大小)(2)并防止边缘空间?

【问题讨论】:

    标签: python matplotlib 3d


    【解决方案1】:

    回答我自己的问题:

    因为这个问题不会吸引用户,所以我在这里发布一个简单(但不是正确)的答案,供其他遇到同样问题的人使用。

    解决这个问题最简单的方法是将 matplotlib 降级到 3.2(在我的例子中是 3.2.2)。

    结果如下。

    【讨论】:

      猜你喜欢
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-06
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2016-08-28
      相关资源
      最近更新 更多