【Pandas】.plot.areaで積み上げグラフを作成する

Pandas
この記事は約6分で読めます。

こんにちは、JS2IIUです。

Pandasは、Pythonでデータ分析を行うための強力なライブラリです。その中でも、.plotメソッドは、データフレームから簡単にグラフを作成できる便利な機能です。今回は、.plot.areaメソッドを使って、積み上げグラフを作成する方法を解説します。

積み上げグラフとは?

積み上げグラフは、複数のデータ系列の値を積み重ねて表示するグラフです。それぞれの系列の値の合計が全体の値となり、各系列が全体に占める割合を視覚的に把握することができます。

.plot.areaメソッドのシグネチャ

Python
DataFrame.plot.area(x=None, y=None, **kwargs)

パラメータ:

  • x: x軸に使用する列名またはインデックス。デフォルトはNoneで、データフレームのインデックスが使用されます。
  • y: y軸に使用する列名またはインデックス。デフォルトはNoneで、すべての数値列が使用されます。
  • kwargs: その他のキーワード引数。Matplotlibのplot()関数に渡されます。

kwargsでよく使うパラメータ:

  • stacked: Trueに設定すると積み上げグラフになります。デフォルトはTrueです。
  • alpha: 透明度を指定します。0.0 (透明) から 1.0 (不透明) の間の値を指定します。
  • colormap: 色のグラデーションを指定します。Matplotlibで定義されているカラーマップ名を使用します。
  • figsize: グラフのサイズをタプル(幅, 高さ)で指定します。
  • title: グラフのタイトルを指定します。
  • xlabel: x軸のラベルを指定します。
  • ylabel: y軸のラベルを指定します。
  • grid: Trueに設定するとグリッド線を表示します。

プログラム例

Python
import pandas as pd
import matplotlib.pyplot as plt

# サンプルデータの作成
data = {
    'Year': [2020, 2021, 2022],
    'Product A': [100, 120, 150],
    'product B': [50, 60, 80],
    'Product C': [30, 40, 50]
}
df = pd.DataFrame(data)

# 積み上げグラフの作成
df.plot.area(x='Year', stacked=True, figsize=(8, 6), title='Sales of Products Over Time')
plt.legend()
plt.xlabel('Year')
plt.ylabel('Sales')
plt.show()

解説:

  1. pandasmatplotlib.pyplotをインポートします。
  2. サンプルデータを作成し、DataFrameに格納します。
  3. df.plot.area()メソッドで積み上げグラフを作成します。
    • x='Year'でx軸に’年’列を使用することを指定します。
    • stacked=Trueで積み上げグラフであることを指定します。
    • figsize=(8, 6)でグラフのサイズを指定します。
    • title='Sales of Products Over Time'でグラフのタイトルを指定します。
  4. plt.xlabel()でx軸のラベルを指定します。
  5. plt.ylabel()でy軸のラベルを指定します。
  6. plt.show()でグラフを表示します。

カスタマイズ例

Python
import pandas as pd
import matplotlib.pyplot as plt

# サンプルデータの作成
data = {
    'Year': [2020, 2021, 2022],
    'Product A': [100, 120, 150],
    'Product B': [50, 60, 80],
    'Product C': [30, 40, 50]
}
df = pd.DataFrame(data)

# 積み上げグラフの作成
df.plot.area(x='Year', 
             stacked=True, 
             figsize=(8, 6), 
             title='Sales of Products Over Time', 
             colormap='viridis',  # カラーマップを変更
             alpha=0.7,  # 透明度を調整
             grid=True  # グリッド線を表示
            )
plt.xlabel('Year')
plt.ylabel('Sales')
plt.show()

解説:

  • colormap='viridis'でカラーマップを’viridis’に変更しています。
  • alpha=0.7で透明度を0.7に設定しています。
  • grid=Trueでグリッド線を表示しています。

このように、kwargsで様々なパラメータを指定することで、グラフをカスタマイズすることができます。

参考になるWEBサイト

次回:

次回は、.plot.barメソッドを使って棒グラフを作成する方法を解説します。お楽しみに!

今回も少しだけPRです。

Pandasについて詳しく知りたいかた、もっと使いこなしたい方におすすめの本です。数年前に購入しましたが、今も手元に置いて時々見返しています。

「pandasクックブック Pythonによるデータ処理のレシピ」Theodore Petrou著、黒川利明訳。

最後まで読んでいただきありがとうございます。73

コメント

タイトルとURLをコピーしました