Pandasデータフレームを日付ごとに集計してプロットする方法
Pandasデータフレームを日付ごとに集計してグラフ化したい場合、groupby()とagg()を組み合わせることで簡単に実現できます。本記事では、Matplotlibを使って集計結果を棒グラフとして可視化するまでの具体的な手順を、サンプルコード付きで解説します。
手順
図のサイズを設定し、サブプロット間およびその周囲のパディング(余白)を調整します。
2次元で、サイズ変更可能、かつ異なるデータ型を含みうる表形式データを持つデータフレーム df を作成します。
groupby()とagg(['sum'])を使って、日付ごとに値を集計したデータフレームを取得します。kind="bar"を指定して、手順3で作成した df を棒グラフとしてプロットします。図を画面に表示するには、
show()メソッドを使用します。
サンプルコード
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt, dates
# 図のサイズを設定
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# データフレームを作成
df = pd.DataFrame(dict(data=list(pd.date_range("2021-01-01", periods=10)),
value=np.linspace(1, 10, 10)))
df = df.groupby('data').agg(['sum']).reset_index()
# データフレームをプロット
df.plot(x='data', y='value', kind="bar")
# グラフを表示
plt.show()
コードのポイント
pd.date_range("2021-01-01", periods=10)により、2021年1月1日から10日分の日付データを生成しています。np.linspace(1, 10, 10)は、1から10までの等間隔の数値を10個作成する関数です。groupby('data').agg(['sum'])で「data」列(日付)をキーに値を合計し、reset_index()でインデックスを列に戻しています。
出力結果
上記のコードを実行すると、日付ごとに集計された値が棒グラフとして表示されます。

-
MatplotlibとPythonでPandasデータフレームから面グラフ(エリアチャート)を描画する方法
Matplotlibを使ってPythonでPandasデータフレームのデータを面グラフ(エリアチャート)として可視化したい場合、plot.area()メソッドを使用すると簡単に実現できます。以下に、その具体的な手順を紹介します。手順図のサイズを設定し、サブプロット間および周囲のパディング(余白)を調整します。Pandasデータフレームを作成します。データフレームとは、2次元のサイズ変更可能で、異なる型のデータを格納できる表形式のデータ構造です。plot.area()メソッドを呼び出して、各系列の下側が塗りつぶされた領域グラフを描画します。図を表示するには、show()メソッドを使用します。サン
-
【Matplotlib】すべての目盛り(xticks)を表示してPandasのマルチインデックスDataFrameをプロットする方法
PandasのマルチインデックスDataFrameを、すべてのxticks(目盛り)を表示した状態でプロットするには、以下の手順に従います。図のサイズを設定し、サブプロット間および周囲のパディングを調整します。1000件のサンプルデータからインデックス値を作成します。軸ラベルを持つ1次元のndarrayを作成します。シリーズの平均値を取得します。gデータフレームをプロットします。現在の軸に対して目盛り(ticks)と目盛りラベル(ticklabels)を設定します。図を表示するには、show()メソッドを使用します。サンプルコードimport numpy as np import matplo