2

x 軸を共有して、1 つの列に 2 つの DataFrames からいくつかの列 (1 つのプロットあたり 2 つ以上の列) をプロットする必要があります。すべてのデータのインデックスは同じです。
[ 1 ] から抜粋して変更した例:

 df = DataFrame(randn(1000, 4), index=date_range('1/1/2000', periods=1000), columns=list('AB'))
 df2 = DataFrame(randn(1000, 4), index=df.index, columns=list('CD'))
 df = df.cumsum()
 df2 = df.cumsum()

 fig, axes = plt.subplots(nrows=2, ncols=1, sharex=True)
 df['A'].plot(ax=axes[0,0])
 df2['C'].plot(ax=axes[0,0])
 df['B'].plot(ax=axes[1,0])
 df2['D'].plot(ax=axes[1,0])

これを実行すると、次のようになりました:IndexError: too many indicesこれはバグですか、それとも何か不足していますか?

変更するncols=2と、すべて問題ありませんが、2 つの空白のプロットが追加されます。

他のソリューションを使用できますが、上記の方が見栄えがよくなります:

ax1 = subplot(211)
df['A'].plot()
df2['C'].plot()

ax2 = subplot(212, sharex=ax1)
df['B'].plot()
df2['D'].plot()
4

1 に答える 1

3

これaxesは 1D ndarray であるためaxes[0, 0]、有効なインデックスではありません。0 と 1 のみが有効です。プロット コードを次のように変更します。

df['A'].plot(ax=axes[0])
df2['C'].plot(ax=axes[0])
df['B'].plot(ax=axes[1])
df2['D'].plot(ax=axes[1])

あなたもできる

fig, (ax1, ax2) = subplots(2, 1, sharex=True)

df['A'].plot(ax=ax1)
df2['C'].plot(ax=ax1)
df['B'].plot(ax=ax2)
df2['D'].plot(ax=ax2)
于 2013-08-23T20:59:04.430 に答える