7

Matplotlib のサブプロットに問題があります。事前にプロットするサブプロットの数はわかりませんが、それらを 2 行にしたいことはわかっています。だから使えない

plt.subplot(212)

提供すべき番号がわからないためです。

次のようになります。

プロットの例

現在、すべてのプロットをフォルダーにプロットし、illustrator でまとめていますが、Matplotlib を使用するより良い方法があるはずです。どこかが不明な場合は、コードを提供できます。

4

1 に答える 1

8

私の理解では、実行時にプロットの数しかわからないため、省略形の構文に苦労しています。たとえば、次のようになります。

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())。認めざるを得ませんが、私はこの後者のインターフェースを使用したことがありません。

HTH

于 2012-08-11T11:56:47.160 に答える