【Python】Pandasで複数の折れ線グラフを描画する方法:データ可視化のコツ

はじめに:複数の折れ線グラフを描画する際のpandasの利点

データ可視化は、データを理解するための重要な手段の1つです。特に、複数の変数を比較する必要がある場合、グラフを用いた可視化は非常に有効です。Pandasは、データフレームという表形式のデータを扱うためのライブラリであり、複数の折れ線グラフを描画する場合に非常に便利です。複数の折れ線グラフを1つのグラフにまとめることができ、比較が容易になります。

必要なライブラリのインストールとインポート

複数の折れ線グラフを描画するために、以下のライブラリを使用します。

  • Pandas
  • Matplotlib

これらのライブラリがインストールされていない場合は、以下のコマンドを実行してください。

!pip install pandas matplotlib

次に、必要なライブラリをインポートします。

import pandas as pd
import matplotlib.pyplot as plt

データフレームの準備と整形:データのロードや前処理

複数の折れ線グラフを描画するために、複数のデータフレームを作成する必要があります。ここでは、サンプルデータとして、ある製品の販売台数を月次で集計したデータを用いることにします。

df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
df3 = pd.read_csv('data3.csv')

各データフレームの列には、月と販売台数が含まれています。データを可視化するために、月をx軸に、販売台数をy軸に設定する必要があります。また、データフレームの列名を変更することで、可視化に適した形式に変換する必要があります。

# データフレームの列名を変更する
df1.columns = ['month', 'sales1']
df2.columns = ['month', 'sales2']
df3.columns = ['month', 'sales3']
# 月をインデックスに設定する
df1 = df1.set_index('month')
df2 = df2.set_index('month')
df3 = df3.set_index('month')
# インデックスを月ごとの日付型に変換する
df1.index = pd.to_datetime(df1.index, format='%Y-%m')
df2.index = pd.to_datetime(df2.index, format='%Y-%m')
df3.index = pd.to_datetime(df3.index, format='%Y-%m')

ここで、データフレームの列名を変更し、月をインデックスに設定します。さらに、インデックスを月ごとの日付型に変換する必要があります。

折れ線グラフの描画:複数のデータフレームからグラフを生成

準備が整ったので、折れ線グラフを描画することができます。まず、1つのデータフレームのグラフを描画する方法を示します。

plt.plot(df1.index, df1['sales1'], label='sales1')
plt.xlabel('month')
plt.ylabel('sales')
plt.title('Sales of product A')
plt.legend()
plt.show()

このコードでは、Matplotlibのplt.plot()関数を使用して、x軸にはインデックス(月)、y軸には販売台数を設定し、グラフを描画します。また、plt.xlabel()関数とplt.ylabel()関数を使用して、軸ラベルを設定し、plt.title()関数を使用して、グラフのタイトルを設定します。最後に、plt.legend()関数を使用して、凡例を表示します。

複数の折れ線グラフを1つのグラフにまとめるには、同じaxesオブジェクトを使用する必要があります。以下のコードでは、3つのデータフレームのグラフを1つのグラフにまとめます。

fig, ax = plt.subplots()
ax.plot(df1.index, df1['sales1'], label='sales1')
ax.plot(df2.index, df2['sales2'], label='sales2')
ax.plot(df3.index, df3['sales3'], label='sales3')
ax.set_xlabel('month')
ax.set_ylabel('sales')
ax.set_title('Sales of products A, B and C')
ax.legend()
plt.show()

このコードでは、Matplotlibのplt.subplots()関数を使用して、axesオブジェクトを作成します。それから、axesオブジェクトのax.plot()関数を使用して、3つのデータフレームのグラフを描画します。また、ax.set_xlabel()関数とax.set_ylabel()関数を使用して、軸ラベルを設定し、ax.set_title()関数を使用して、グラフのタイトルを設定します。最後に、ax.legend()関数を使用して、凡例を表示します。

グラフの見栄えや凡例の設定方法

グラフの見栄えを改善するために、以下のような設定を行うことができます。

  • グラフの色や線の種類を変更する
  • 軸の範囲を設定する
  • グリッド線を表示する

以下のコードでは、グラフの色や線の種類を変更し、軸の範囲を設定し、グリッド線を表示する方法を示します。

fig, ax = plt.subplots()
ax.plot(df1.index, df1['sales1'], color='blue', linestyle='--', label='sales1')
ax.plot(df2.index, df2['sales2'], color='red', linestyle='-.', label='sales2')
ax.plot(df3.index, df3['sales3'], color='green', linestyle=':', label='sales3')
ax.set_xlabel('month')
ax.set_ylabel('sales')
ax.set_title('Sales of products A, B and C')
ax.legend()
# x軸の範囲を設定する
ax.set_xlim([pd.to_datetime('2019-01'), pd.to_datetime('2020-12')])
# y軸の範囲を設定する
ax.set_ylim([0, 150])
# グリッド線を表示する
ax.grid(True)
plt.show()

このコードでは、ax.plot()関数でグラフの色や線の種類を変更し、ax.set_xlim()関数とax.set_ylim()関数でx軸とy軸の範囲を設定します。また、ax.grid()関数でグリッド線を表示します。

まとめ:pandasを活用して複数の折れ線グラフを効果的に描画する方法

本記事では、Pandasを使用して複数の折れ線グラフを描画する方法について紹介しました。以下の手順を実行することで、複数のデータフレームからグラフを生成することができます。

  1. 必要なライブラリをインストールして、インポートする。
  2. データフレームを準備し、必要に応じて前処理を行う。
  3. Matplotlibを使用して、1つのデータフレームのグラフを描画する。
  4. axesオブジェクトを使用して、複数のデータフレームのグラフを1つのグラフにまとめる。
  5. グラフの見栄えを改善するために、色や線の種類を変更し、軸の範囲を設定し、グリッド線を表示する。

Pandasを使用することで、データフレームを簡単に扱うことができます。また、Matplotlibを使用することで、グラフを自由にカスタマイズすることができます。これらのツールを駆使して、効果的なデータ可視化を実現しましょう。