【问题标题】:Matplotlib figsize for subplot doesn't match figsize for regular plot [duplicate]子图的 Matplotlib figsize 与常规图的 figsize 不匹配 [重复]
【发布时间】:2018-08-09 14:13:22
【问题描述】:

我正在使用pandas 来操作存储在变量x 中的一些数据。就这样吧

x.plot(figsize=(10,6))

将生成我分享的图片顶部的图表。

然后我使用相同figsize的子图,结果是图像的底部。

fig, axes = plt.subplots(2,2, figsize=(10,6))
axes = axes.ravel()
dfs = dict()
for i, ax in enumerate(axes):
    y = backtest_up(x)[['v1', 'v2']]
    ax.plot(y)

如果两个图的 figsize 值相同,为什么图的大小不同?

【问题讨论】:

  • 如果您在一张纸上绘制一个图,并在一张相同大小的纸上绘制 4 个图,则四个图中的每一个都必须更小(大约一半长度,四分之一面积)以适合该表。
  • 同意,这里的问题是用于显示单个图的“白色画布”小于用于显示较小图的“白色画布”。我希望设置相同的 figsize 会使“白色画布”具有相同的大小

标签: python-3.x pandas matplotlib


【解决方案1】:

在 matplotlib 中,figsize 设置整个图形的大小。

在您的第一个示例中,只有一个图表,因此它将包含整个图表。 在第二个示例中,有四个图形,因此每个图形占图形的四分之一。

但是4张图加起来的大小和单张图一样。

【讨论】:

  • 嗯。这对我来说没有多大意义。例如,如果我在子图之后使用 plt.tight_layout,则差异更加臭名昭著
  • ibb.co/iPbCqp 在这张图上我把figsize标成了红色,是不是更清楚了?
  • 更清晰!这正是我的观点,你的 figsizes 匹配,而我的不匹配,尽管我在两者上都设置了 figsize 参数。那么我应该如何使用 figsize 参数来复制你的结果呢?
  • 我不确定,在您的屏幕截图上并不明显它不匹配,您的代码中有这个奇怪的东西 figsize=figsize=(10,6)。
  • 修正了 figsize 的错字。从截图中你可以看到底部的图有更多的宽度,这就是困扰我的地方
猜你喜欢
  • 1970-01-01
  • 2013-04-13
  • 2019-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-06
  • 1970-01-01
  • 2017-08-18
相关资源
最近更新 更多