/ / forループ内でmatplotlibサブプロットを設定する - python、pandas、matplotlib、subplot

forループ内でmatplotlibのサブプロットを設定するには - python、pandas、matplotlib、subplot

"Pandas"データフレーム内のデータをループしてさまざまなサブプロットにプロットしようとしていますが、間違ったことがわかりません。

ここにはコードがあります:

df2 = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list("ABCD"))
fig, axes = plt.subplots(nrows=4, ncols=1, sharex=True)
for i, col in enumerate(df2.columns):
print(col)
axes[i] = df2[col].plot(kind="box")

ここに画像の説明を入力

他のサブプロットを埋めるにはどうすればいいですか。

回答:

回答№1は4

これを行うより簡単な方法があります、あなたはただする必要があります df.plot オプション付き subplots=True それから外れ値を垂直方向に変更します。layout=(4,1)):

df2.plot(kind="box",subplots=True, layout=(4,1), figsize=(8,8))
plt.show()

ここに画像の説明を入力

あるいは、サブプロットを水平に配置するのがlayout=(1,4)):

df2.plot(kind="box",subplots=True, layout=(1,4),figsize=(15,8))
plt.show()

ここに画像の説明を入力

そして最後に、次のようにしてすべての箱ひげ図をまとめることができます。

df2.plot(kind="box", figsize=(8,8))
plt.show()

ここに画像の説明を入力

パンダで視覚化する方法の詳細については、 ドキュメンテーション.


回答№2の場合は1

軸を引数として関数plotに渡す必要があります。これらの線に沿って何か:

df2 = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list("ABCD"))
fig, axes = plt.subplots(nrows=4, ncols=1, sharex=True)
for i, col in enumerate(df2.columns):
print(col)
df2[col].plot(kind="box", ax=axes[i])

あなたの例では、あなたは 'axes'の要素を再定義しています。代わりに、Axesを一度定義してから、プロットに使用する軸をプロット関数に指示します。