0

我正在使用以下示例示例创建两个极坐标子图。当我创建为 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()
4

2 回答 2

1

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

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

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

这会提供尽可能少的空白。bbox_inches='tight' 试图使边界框尽可能小,而 pad_inches 设置应该填充多少英寸的空白。就我而言,我根本没有额外的填充,因为我在使用该图的任何内容中添加了填充。

于 2013-03-08T19:05:03.167 回答
1

另一种方法是figsize在调用plt.subplots.

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

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

于 2013-03-08T19:30:28.863 回答