【问题标题】:Matplotlib figure sizeMatplotlib 图形大小
【发布时间】:2020-03-27 03:44:19
【问题描述】:

我一直在尝试使用 Matplotlib(请参阅最近的问题:here

我正在尝试通过以下方式修改图形输出的大小:

plt.figure(figsize=(20, 12.5)) 

但它似乎从来没有像预期的那样工作 - 我使用更大的数字来尝试增加图形的高度,但它并没有使它变小。关于使图表更大的任何想法。上面的链接问题附有我目前使用 figsize=(20,12.5) 获得的图片。

谢谢!

【问题讨论】:

  • 我想你说的是屏幕上显示的数字?并且保存的数字确实可以正确缩放?然后考虑您的屏幕不够大(例如,1920x1080 的屏幕可以在 100 dpi 下显示 19.2 x 10.8 英寸的图形)。
  • 那么,让我直说吧。您想拉伸图形高度吗?并且,查看您上一个问题的图表。补丁与yaxis 上的刻度不对齐是否正常?

标签: matplotlib


【解决方案1】:

好吧,要回答您的问题,您可以在imshow() 调用中使用aspect 参数。

来自文档:

控制轴的纵横比。该方面与图像特别相关,因为它可能会扭曲图像,即像素不会是方形的。

在这种情况下,我认为“像素”看起来是正方形并不重要,因此您可以将 aspect 参数添加到 plt.imshow() 调用并设置一个值。

plt.imshow(field_matrix, interpolation='nearest', cmap=cmap, aspect=7)

现在,plt.figure(figsize=(20, 12.5)) 将增加图形窗口的大小,但不会增加图形纵横比本身。因此,您可以选择删除此行或保留它。我删除了它并得到了这个结果:

正如我在上面的评论中提到的,我不知道这是否是您想要的,但您可以看到刻度与每个补丁都不对齐。因此,如果您希望它们对齐,您可以将您的 plt.yticks() 调用中的 np.arange() 调用更改为如下内容:

plt.yticks(np.arange(-0.5, 5.5), [utilities.num2pid[k] for k in range(5)])

输出:

希望这会有所帮助。

【讨论】:

  • 谢谢。是的,这解决了问题!
猜你喜欢
  • 2023-03-21
  • 2015-06-24
  • 2017-11-21
  • 2017-12-12
  • 1970-01-01
  • 2015-08-12
  • 2010-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多