matplotlib:在不改变宽高比的情况下设置图形的宽度或高度

时间:2015-02-19 21:28:33

标签: python matplotlib

我想选择数字的宽度,同时仍然让matplotlib选择它认为合适的宽高比。我知道改变图形大小的每个方法都需要一个(宽度,高度)元组,这会强制一定的宽高比。有没有办法只指定宽度(或只是高度)并允许matplotlib选择合适的宽高比?

2 个答案:

答案 0 :(得分:3)

根据我的理解,matplotlib不会选择"合适的纵横比本身。相反,轴会自动填充到图形的大小。因此,通过使用(宽度,高度)元组设置图形大小,您还可以设置它的纵横比(同时考虑图中的子图轴数)。也许轴方法set_aspect会对你有帮助吗?它允许您在图中明确设置轴对象的纵横比。

例如,以下将生成4" x2"但是,其中的轴将具有1:1的宽高比:

  fig, ax = plt.subplots(figsize=(4,2))
  ax.set_aspect('equal')

方法set_aspect也可以采用高度:宽度数。无论您选择的图形尺寸如何,都可以使用它来强制轴内的轴保持特定的纵横比。

编辑:This post也可能有所帮助。

答案 1 :(得分:0)

我了解到,matplotlib实际上仅对所有图形使用恒定的默认图形大小。此值存储在rcParams中,可以用

查看
plt.rcParams["figure.figsize"]

这会为我返回[6.0, 4.0]

如果要保持相同的宽高比(即“长宽比”),则可以使用以下方法将其加倍:

plt.rcParams["figure.figsize"] = [2 * i for i in plt.rcParams["figure.figsize"]]