次のコードを使用して棒グラフをプロットしています。
import matplotlib.pyplot as pls
my_df.plot(x='my_timestampe', y='col_A', kind='bar')
plt.show()
プロットは正常に機能します。ただし、3つの列: 'col_A'、 'col_B'、および 'col_C'をすべてプロットに表示することで、グラフを改善したいと思います。下の例の図のように:
col_A
をx軸の上に青色で、col_B
をx軸の下に赤色で、col_C
をx軸の上に緑色で表示したいと思います。これはmatplotlibで可能ですか? 3列すべてをプロットするように変更するにはどうすればよいですか?ありがとう!
plot
のy
引数に列名のリストを指定することにより、複数の列を一度にプロットできます。
df.plot(x="X", y=["A", "B", "C"], kind="bar")
これにより、バーが隣同士にあるグラフが作成されます。
それらをオーバーラップさせるには、plot
を数回呼び出し、プロットする軸をプロットax
として指定する必要があります。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
y = np.random.Rand(10,4)
y[:,0]= np.arange(10)
df = pd.DataFrame(y, columns=["X", "A", "B", "C"])
ax = df.plot(x="X", y="A", kind="bar")
df.plot(x="X", y="B", kind="bar", ax=ax, color="C2")
df.plot(x="X", y="C", kind="bar", ax=ax, color="C3")
plt.show()
v0.21.0rc1 は警告を与えるため、受け入れられた答えは正常に機能しますが
UserWarning:Pandasでは、新しい属性名を使用して列を作成できません
代わりに、できること
df[["X", "A", "B", "C"]].plot(x="X", kind="bar")