【Python】Pandasで複数のデータフレームを1つのグラフにプロットする方法
Pandasの機能を活用すれば、複数のデータフレームを1つのグラフにまとめてプロットできます。この記事では、Matplotlibと組み合わせて、2つの異なるデータフレームを同じ図上に重ねて描画する具体的な手順を解説します。
プロットの手順
- 図のサイズを設定し、サブプロット間および周囲のパディング(余白)を調整します。
- 2次元・サイズ可変・異なる型のデータを格納できる表形式データとして、2つのPandasデータフレーム(df1とdf2)を作成します。
- plot()メソッドを使ってdf1をプロットし、返される軸オブジェクト(ax)を取得します。
- 2つ目のデータフレームdf2もplot()メソッドで描画します。このときax引数に先ほどの軸オブジェクトを渡すことで、同じグラフに重ねて表示できます。
- 図を画面に表示するには、show()メソッドを使用します。
コード例
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
df1 = pd.DataFrame(
dict(
name=['John', 'James', 'Stephen', 'Kandy'],
age=[23, 45, 12, 34]
)
)
df2 = pd.DataFrame(
dict(
subject=['Math', 'Physics', 'Chemistry', 'Biology'],
marks=[67, 98, 90, 75]
)
)
ax = df1.plot(x='name', y='age')
df2.plot(ax=ax, x='subject', y='marks')
plt.show()
実行結果
このコードを実行すると、df1の「name」をX軸、「age」をY軸とした折れ線グラフと、df2の「subject」をX軸、「marks」をY軸とした折れ線グラフが、それぞれ別の色で同じ図上に描画されます。


ポイント解説
複数のデータフレームを重ねてプロットする際の鍵となるのは、最初のplot()呼び出しが返すAxesオブジェクトです。これを2つ目以降のplot()のax引数に渡すことで、新しい図を作成せずに既存のグラフへ追記していくことができます。
また、figure.autolayoutをTrueに設定しておくと、ラベルやタイトルが図の外にはみ出すのを自動的に防いでくれるため、レイアウト調整の手間が省けます。X軸の項目が文字列の場合でも、Pandasが自動的にカテゴリとして処理してくれるため、数値データと同様に簡単に可視化できるのが魅力です。
-
Pandasで時系列プロットのX軸に主目盛り・副目盛りとラベルを設定する方法
Pandasを使えば、日時と速度のデータを含むデータフレームを簡単に作成でき、そのデータフレームをもとに目的の時系列プロットを描画できます。この記事では、乱数生成からプロット表示までの一連の手順を解説します。 実行手順 デフォルトのBitGenerator(PCG64)を使用して、新しいGeneratorオブジェクトを作成します。 Pandasのdate_range関数を使い、「2020-01-01」から「2021-01-01」までの日次頻度(freq=D)のDatetimeIndexを生成します。 対数正規分布(log-normal distribution)からサンプル値を抽出します。
-
Pythonで複数のファイル名を一括変更する方法【os.rename()活用】
Python3では、rename()メソッドを使うことで、ファイルやディレクトリの名前を簡単に変更できます。このメソッドは標準ライブラリのosモジュールに含まれており、追加のインストールなしですぐに利用可能です。 os.rename() の基本構文 os.rename(src, dst) 各引数の意味は以下のとおりです。 src: 名前を変更したい元のファイル(またはディレクトリ)のパス dst: 変更後の新しい名前を含むパス それでは、複数の画像ファイルが入ったフォルダを例に、一括でファイル名を変更する方法を見ていきましょう。ここでは、次のような画像フォルダを使用します。 入力(変更前の