如何使用子图更改图形大小?


287

我在Matplotlib网站上遇到了这个示例。我想知道是否有可能增加数字的大小。

我尝试过

f.figsize(15,15)

但它什么也没做。

Answers:


525

如果已经有了图形对象,请使用:

f.set_figheight(15)
f.set_figwidth(15)

但是,如果您使用.subplots()命令(如您所显示的示例中所示)来创建新图形,则还可以使用:

f, axs = plt.subplots(2,2,figsize=(15,15))

12
还有fig.set_size_inches一起设置高度和宽度
Francesco Montesano

1
这是行不通的,您可以将高度设置为所需的任何高度,但是它永远不会比显示器大。

2
这与您的显示器无关。如果输出为png怎么办?您是说它永远不能超过屏幕分辨率吗?它是以英寸为单位的大小与以像素为单位的dpi的组合。
罗格·卡西斯

在对subplots()的调用中包括figsize似乎不起作用。调用f.set_figheight确实可以。
Vicki B

是否可以在不更改figsize的情况下更改子图大小?
Alexis.Rolland

37

或者,figure()使用figsize参数创建一个对象,然后使用add_subplot来添加子图。例如

import matplotlib.pyplot as plt
import numpy as np

f = plt.figure(figsize=(10,3))
ax = f.add_subplot(121)
ax2 = f.add_subplot(122)
x = np.linspace(0,4,1000)
ax.plot(x, np.sin(x))
ax2.plot(x, np.cos(x), 'r:')

简单的例子

此方法的好处是语法更接近于subplot()而不是的调用subplots()。例如,次要情节似乎没有使用支持GridSpec用于控制次要情节的间距,但都subplot()add_subplot()做的。


10
有可能分别向斧头和斧头2添加“大小”吗?
M. Gopal '18

2
如果我理解正确,您是否要设置两个轴的相对尺寸?在那种情况下,我认为您正在寻找以下问题:stackoverflow.com/questions/10388462/…–
aquirdturtle
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.