使用Matplotlib在编程中如何动态调整图形大小?

6

插图

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

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

一条命令可以让我先绘制主要图,然后随着每个子图的添加而增加图形的大小,这将是理想的。

2个回答

1

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

您需要编写一个程序,既可以调整图形的高度,又可以缩放和移动图形中的任何内容。虽然这并非不可能实现,但我仍然认为这个功能目前还不存在。


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()

生成 输入图像描述

而且你可以轻松地进一步调整它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接