我对 Matplotlib 的子图有疑问。我不知道我想事先绘制的子图的数量,但我知道我希望它们分成两行。所以我不能使用
plt.subplot(212)
因为我不知道我应该提供的号码。
它应该如下所示:
现在,我将所有的绘图都绘制到一个文件夹中,并与 illustrator 一起将它们放在一起,但 Matplotlib 必须有更好的方法。如果我不清楚某处,我可以提供我的代码。
我对 Matplotlib 的子图有疑问。我不知道我想事先绘制的子图的数量,但我知道我希望它们分成两行。所以我不能使用
plt.subplot(212)
因为我不知道我应该提供的号码。
它应该如下所示:
现在,我将所有的绘图都绘制到一个文件夹中,并与 illustrator 一起将它们放在一起,但 Matplotlib 必须有更好的方法。如果我不清楚某处,我可以提供我的代码。
我的理解是,您只知道运行时的绘图数量,因此正在努力使用速记语法,例如:
plt.subplot(121)
值得庆幸的是,为了避免你不得不做一些笨拙的数学来以编程方式计算出这个数字,还有另一个界面允许你使用表格:
plt.subplot(n_cols, n_rows, plot_num)
所以在你的情况下,如果你想要n
情节,你可以这样做:
n_plots = 5 # (or however many you programatically figure out you need)
n_cols = 2
n_rows = (n_plots + 1) // n_cols
for plot_num in range(n_plots):
ax = plt.subplot(n_cols, n_rows, plot_num)
# ... do some plotting
或者,您可能希望了解一个稍微更 Pythonic 的界面:
fig, subplots = plt.subplots(n_cols, n_rows)
for ax in subplots:
# ... do some plotting
(请注意,这subplots()
不是平原subplot()
)。尽管我必须承认,我从未使用过后一种界面。
高温高压