[Python]Pandasで複数の折れ線グラフを一つの図に表示する方法

Pythonのデータ分析ライブラリ、Pandasを使って複数の折れ線グラフを一つの図に表示する方法を紹介します。

はじめに

折れ線グラフは、時間や順序に沿ったデータの変化を可視化するのに有用なグラフです。Pandasを使うと、データフレームの列を折れ線グラフとして簡単に描画することができます。複数の折れ線グラフを一つの図に表示する場合は、matplotlibを利用します。

Pandasとmatplotlibのインポートと基本設定

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

import pandas as pd
import matplotlib.pyplot as plt

次に、グラフの日本語表示に必要なフォントを設定します。

plt.rcParams['font.family'] = 'IPAexGothic'

データフレームの作成と整形

ここでは、仮想的な株価データを用いて複数の折れ線グラフを描画します。

import numpy as np
# データ作成
np.random.seed(0)
data = np.random.randn(100, 4).cumsum(axis=0)
df = pd.DataFrame(data, columns=['A', 'B', 'C', 'D'])
# 最初の5行を表示
print(df.head())

この例では、4つの列(A、B、C、D)からなるデータフレームを作成しています。各列は、乱数を累積したものです。最初の5行は以下のようになります。

          A         B         C         D
0 -1.764052  0.400157  0.978738  2.240893
1 -2.063888  1.764052  1.510996  3.424049
2 -3.154436  2.292208  2.938693  2.165502
3 -2.646242  2.316291  3.527292  1.907437
4 -3.424773  3.560248  4.754400  2.038398

データフレームの列を折れ線グラフとして描画するには、Pandasのplotを使います。

これで、A、B、C、Dの4つの折れ線グラフがそれぞれ独立した図として表示されました。

複数の折れ線グラフを一つの図に描画する方法

それでは、これらの折れ線グラフを一つの図にまとめて描画してみましょう。

df.plot()
plt.show()

これで、4つの折れ線グラフが一つの図に表示されました。各折れ線グラフには、データフレームの列の名前が凡例として表示されます。

凡例やタイトル、軸ラベルなどのグラフのカスタマイズ

グラフの見た目をカスタマイズする方法も紹介します。

まず、グラフのタイトルを設定します。

plt.title('株価の推移')

次に、x軸とy軸のラベルを設定します。

plt.xlabel('日付')
plt.ylabel('株価')

また、凡例の位置を調整することもできます。以下の例では、右上に凡例を表示するように設定しています。

plt.legend(loc='upper right')

さらに、グラフの背景色や線の種類、色なども設定できます。以下の例では、グラフの背景色を黒に、線の種類を点線に、線の色を赤、青、緑、黄色に設定しています。

plt.style.use('ggplot')
plt.plot(df['A'], linestyle='--', color='r')
plt.plot(df['B'], linestyle=':', color='b')
plt.plot(df['C'], linestyle='-.', color='g')
plt.plot(df['D'], linestyle='-', color='y')

これで、カスタマイズしたグラフが表示されました。

グラフの保存と出力

最後に、グラフを画像として保存する方法を紹介します。

plt.savefig('stock.png')

これで、カレントディレクトリにstock.pngという名前のファイルが保存されました。

まとめ

Pandasを使って、複数の折れ線グラフを一つの図に表示する方法を紹介しました。また、グラフのカスタマイズ方法や画像としての出力方法も説明しました。折れ線グラフは、時間や順序に沿ったデータの変化を可視化するのに有用なグラフであり、Pandasとmatplotlibを使うことで簡単に描画することができます。

今回紹介した内容は、SEO対策の観点からも有用な情報であり、データ分析を行う上で必要なスキルです。ぜひ、実際に手を動かして試してみてください。