6

插图

如何在 matplotlib 中增加图形的大小,以容纳可变数量的子图,同时保持高度不变?

我正在绘制大量数字,每个数字都包含一个主子图(绿色),它应该覆盖图像高度的 90%。除此之外,我添加了可变数量的注释子图(橙色),每个子图应占据 10% 的高度。换句话说,具有一个注释的图形的基本情况将导致高度为 100% 的图形,而具有 5 个注释的图形的总高度为 140%

一个允许我绘制主图然后在添加每个子图时增大图形的命令将是理想的。

4

2 回答 2

1

我不认为这是一个自动选项。我可能是错的。有figure.set_figheight以英寸为单位调整大小的。问题是轴是相对于图形尺寸定义的,因此在调整大小之前,图形上的任何子图都会被缩放以填充额外的 40% 空间。

您必须编写一个例程来调整图形的高度和比例并替换图形中的任何内容。并非不可能,但我再次认为此功能尚不存在。

于 2012-05-25T13:08:25.410 回答
0
br@ymir:~/temp$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.pyplot as plt
>>> fig=plt.figure()
>>> fig.get_size_inches()
array([ 8.,  6.])
>>> fig.set_size_inches([8.,12.])
>>> ax=fig.add_subplot(111)
>>> ax.plot([1,1,2],[3,4,5],'ro-')
[<matplotlib.lines.Line2D object at 0x2428590>]
>>> ax1 = fig.add_subplot(212)
>>> ax1.plot([2,3,4],[8,9,11],'bs-')
[<matplotlib.lines.Line2D object at 0x2461450>]
>>> fig.subplots_adjust()

生产 在此处输入图像描述

您可以轻松地对其进行进一步微调。

于 2012-05-25T13:30:48.800 回答