更改matplotlib polar contourf中的figsize

更改matplotlib polar contourf中的figsize,matplotlib,Matplotlib,我使用以下示例创建两个极轴轮廓子图。当我创建为pdf时,有很多空白,我想通过更改figsize来删除这些空白 我知道通常如何更改figsize,但我很难看到在这个代码示例中该如何放置它。任何指导或暗示都将不胜感激 非常感谢 import numpy as np import matplotlib.pyplot as plt #-- Generate Data ----------------------------------------- # Using linspace so that t

我使用以下示例创建两个极轴轮廓子图。当我创建为pdf时,有很多空白,我想通过更改figsize来删除这些空白

我知道通常如何更改figsize,但我很难看到在这个代码示例中该如何放置它。任何指导或暗示都将不胜感激

非常感谢

import numpy as np
import matplotlib.pyplot as plt

#-- Generate Data -----------------------------------------
# Using linspace so that the endpoint of 360 is included...
azimuths = np.radians(np.linspace(0, 360, 20))
zeniths = np.arange(0, 70, 10)

r, theta = np.meshgrid(zeniths, azimuths)
values = np.random.random((azimuths.size, zeniths.size))

#-- Plot... ------------------------------------------------
fig, ax = plt.subplots(subplot_kw=dict(projection='polar'))
ax.contourf(theta, r, values)

plt.show()

您可以很容易地将
plt.figsize(x,y)
放在代码的开头,它就会起作用。plt.figsize更改所有未来绘图的大小,而不仅仅是当前绘图

然而,我认为你的问题不是你认为的那样。除非您更改周围的选项,否则生成的PDF中往往会有相当多的空白。我通常使用

plt.savefig( 'name.pdf', bbox_inches='tight', pad_inches=0 )

这将提供尽可能少的空白。bbox_inches='tight'试图使边界框尽可能小,而pad_inches设置应该填充多少英寸的空白。在我的例子中,我没有任何额外的填充,因为我在使用图形的任何地方添加填充。

另一种方法是在调用
plt.subplot
时使用
figsize
kwarg

fig,ax=plt.subplot(figsize=(6,6),subplot_kw=dict(projection='polar'))


顺便说一句,这些值以英寸为单位。

谢谢,我不知道savefig中的注释-这很有帮助。实际上,在代码的开头使用plt.figsize=(5,5)对我的输出没有影响;它需要是plt.figsize(5,5),不带等号。有一个函数figsize,用于设置默认地物大小,还有一个命名参数figsize to figure和子图,用于设置该特定地物的figsize。