2017-07-18 9 views
2

同じ構造の集約された多数のデータフレームのリストがあります。同じ図のデータフレーム以上をプロットするpandas

私は同じグラフ上の各データフレームから2つの列をプロットしたいと思います。

私はこのコードスニペットを使用しますが、それは私に、各データフレームに対して個別のプロットできます:あなたはそれが新しい数字を毎回作成するためpandas.DataFrame.plotはmatplotlibののholdパラメータに影響されない、気づいたよう

# iterate through a list 
for df in frames: 
    df.plot(x='Time', y='G1', figsize=(16, 10)) 
    plt.hold(True) 
plt.show() 

答えて

2

あなたがインデックスさ各セットを持っている場合は、あなただけのそれらのすべてを連結して反復することなく、一度にそれらをプロットすることができます。

# If not indexed: 
# frames = [df.assign(sample=i) for i, df in enumerate(frames)] 
df = pd.concat(frames).pivot(index='Time', columns='sample', values='G1') 
df.plot(figsize=(16, 10)); 

これは、あなたのデータが揃っているとplt.holdはmatplotlibの2.0では非推奨とされていることを確認できます。

2

を。これを回避する方法は、axパラメータを明示的に渡すことです。 axNoneではない場合は、DataFrameに、新しい図形を単独で作成するのではなく、特定の軸セットをプロットするように指示します。

事前に軸セットを準備するか、の最初の呼び出しの戻り値を使用できます。私はここで、後者のアプローチを示しています。

ax = None 
for df in frames: 
    ax = df.plot(x='Time', y='G1', figsize=(16, 10), ax=ax) 
    plt.hold(True) 
plt.show() 
関連する問題