Pandasの積み上げ面グラフ
公開日 2024-08-18
PandasのSeries, DataFrameで縦向きの積み上げ面グラフをプロットする方法は、以下の2つがあります。
plot()メソッドにkind='area'オプションを渡す。plot.area()メソッドを使う(メソッドチェーン)。
両者にほぼ違いはありません。この記事では後者を使用します。
簡単な例¶
まず、pandas.Seriesで棒グラフをプロットする簡単な例を以下に示します。indexに指定した変数が横軸になります。
import pandas as pd
sr = pd.Series([1, 3, 2], index=["spam", "ham", "egg"])
sr.plot.area()<Axes: >
次に、pandas.DataFrameの簡単な例を以下に示します。indexに指定した変数が横軸になり、columnsが異なる色のエリア(系列)になります。
df = pd.DataFrame(
[[1, 2], [3, 1], [2, 4]],
index=["spam", "ham", "egg"],
columns=["Alice", "Bob"]
)
display(df)
df.plot.area()Loading...
<Axes: >
plot(), plot.area()の各メソッドのオプションについては、Pandas グラフ作成の共通設定を参照して下さい。
透過させて比較¶
plot.area()メソッドにstacked=Falseオプションを与えると、積み上げグラフではなく、色を透過させて各系列の値が比較できる通常の面グラフになります。
df.plot.area(stacked=False)<Axes: >
df.plot.area(color={"Alice": "brown", "Bob": "pink"})<Axes: >
また、色の透過度を変更する場合、alphaオプションに0から1の範囲で値を渡します。
値が小さいほど透明に近づきます。
df.plot.area(alpha=0.3)<Axes: >