Skip to content

Matplotlibを使ったPythonによる時系列プロットの作成方法

Updated on

このチュートリアルでは、PythonでMatplotlibを使用して時系列プロットを作成する方法を学びます。株価、Webトラフィック、その他の時間依存データを視覚化する場合、Matplotlibはデータ可視化と分析の強力なツールです。目盛りとラベルをカスタマイズし、水平軸の日付を扱い、より詳細なデータ表示のためにマイナー目盛りを追加する方法を示します。

Pythonでデータ可視化を素早く作成したい場合は?

PyGWalkerは、Jupyter Notebookベースの環境内で直接データ分析と可視化のワークフローを加速するのに役立つオープンソースのPythonプロジェクトです。

PyGWalker (opens in a new tab)は、Pandas Dataframe(またはPolars Dataframe)を視覚化 UIに変換し、簡単にグラフを作成するために変数をドラッグアンドドロップできます。単純に次のコードを使用します。

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

今すぐオンラインノートブックでPyGWalkerを実行できます:

そして、GitHubで⭐️をつけるのを忘れないでください!

Kaggle NotebookでPyGWalkerを実行する (opens in a new tab)Google ColabでPyGWalkerを実行する (opens in a new tab)PyGWalkerに⭐️をつける (opens in a new tab)
Kaggle NotebookでPyGWalkerを実行 (opens in a new tab)Google ColabでPyGWalkerを実行 (opens in a new tab)GitHubでPyGWalkerに⭐️をつける (opens in a new tab)

Matplotlibとは何か、何に使用されるか?

Matplotlibは、Pythonのデータ可視化ライブラリです。Pythonで静的、アニメーション、およびインタラクティブな視覚化を作成するためのさまざまなツールを提供します。Matplotlibは、チャート、プロット、およびグラフを作成するために、学術界、産業界、および政府で広く使用されています。

Matplotlibを使用して時系列プロットの目盛りとラベルをカスタマイズする方法は?

Matplotlibを使用して時系列プロットの目盛りとラベルをカスタマイズするには、 set_xticks() および set_xticklabels() メソッドを使用します。これらのメソッドを使用すると、水平軸の目盛りとラベルの場所と形式を指定できます。

import matplotlib.pyplot as plt
import pandas as pd
 
# データをロードする
data = pd.read_csv("data.csv")
 
# 日付列をdatetimeに変換
data["date"] = pd.to_datetime(data["date"])
 
# プロットを作成
fig, ax = plt.subplots()
 
# 目盛り位置とラベルの設定
ax.set_xticks(data["date"])
ax.set_xticklabels(data["date"].dt.strftime("%Y-%m"))
 
# データをプロット
ax.plot(data["date"], data["value"])
 
# プロットを表示
plt.show()

この例では、まずPandasライブラリを使用してデータをロードし、日付列をdatetime形式に変換します。次に、Matplotlibを使用してプロットオブジェクトを作成し、 set_xticks() set_xticklabels()メソッドを使用して目盛り位置とラベルを設定します。最後に、データをプロットしてshow()メソッドを使用してプロットを表示します。

Matplotlibで日付を横軸に使用するにはどうすればよいですか?

Matplotlibで日付を横軸に使用するには、matplotlib.datesモジュールから date2num()関数を使用します。この関数は、日付オブジェクトを浮動小数点数に変換し、日付を水平軸にプロットするために使用できます。

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
 
# データのロード
data = pd.read_csv( "data.csv"
 
# 日付列をdatetimeとdate2num形式に変換する
data [ "date" ] = pd.to_datetime( data [ "date" ].apply( mdates.date2num)
 
# プロットを作成
fig、ax = plt.subplots()
 
# データをプロット
ax.plot_date( data [ "date" ]、 data [ "value" ]、 linestyle = "solid"
 
# プロットを表示
plt.show()

この例では、まずPandasライブラリを使用してデータをロードし、日付列をdatetime形式に変換します。次に、 date2num()関数を使用して日付列をMatplotlibでプロットできる形式に変換します。最後に、plot_date()メソッドを使用してデータをプロットし、 show()メソッドを使用してプロットを表示します。

MonthLocatorとは何ですか?Matplotlibでどのように使用されますか?

MonthLocatorは、時間系列プロットの水平軸の目盛り位置を指定するために使用されるMatplotlibのクラスです。 MonthLocatorクラスは、月単位の定期的な間隔で目盛り位置を生成するために使用できます。

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
 
# Load data
data = pd.read_csv("data.csv")
 
# Convert date column to datetime and date2num format
data["date"] = pd.to_datetime(data["date"]).apply(mdates.date2num)
 
# Create plot
fig, ax = plt.subplots()
 
# MonthLocatorを使用して目盛りの位置を設定する
locator = mdates.MonthLocator()
ax.xaxis.set_major_locator(locator)
 
# データをプロット
ax.plot_date(data["date"], data["value"], linestyle="solid")
 
# Show plot
plt.show()

この例では、まずPandasライブラリを使用してデータをロードし、日付列をdatetime形式に変換します。次に、 date2num()関数を使用して日付列をMatplotlibでプロットできる形式に変換し、MonthLocatorを使用して目盛り位置を設定します。最後に、 plot_date()メソッドを使用してデータをプロットし、 show()メソッドを使用してプロットを表示します。

fig、ax = plt.subplots()
 
# メジャーロケーターを設定
ax.xaxis.set_major_locator(mdates.MonthLocator())
 
# メジャーフォーマッターを設定
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m"))
 
# データをプロット
ax.plot_date(data["date"], data["value"], linestyle="solid")
 
# プロットを表示
plt.show()
 

この例では、まずPandasライブラリを使用してデータを読み込み、日付列をdatetime形式に変換し、Matplotlibでプロットできる形式に変換します。次に、プロットオブジェクトを作成し、set_major_locator()メソッドを使用してメジャーロケーターを設定し、月ごとの定期的な目盛りの場所を生成します。最後に、データをプロットして、show()メソッドを使用してプロットを表示します。

Matplotlibを使用した時系列プロットに小目盛りを追加する方法は?

Matplotlibを使用して時系列プロットに補助目盛りを追加するには、xaxisオブジェクトのset_minor_locator()メソッドを使用します。このメソッドを使用すると、水平軸上の補助目盛りの場所を指定できます。

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
 
# データを読み込む
data = pd.read_csv("data.csv")
 
# 日付列をdatetimeおよびdate2num形式に変換する
data["date"] = pd.to_datetime(data["date"]).apply(mdates.date2num)
 
# プロットを作成する
fig, ax = plt.subplots()
 
# メジャーロケーターを設定
ax.xaxis.set_major_locator(mdates.MonthLocator())
 
# メジャーフォーマッターを設定
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m"))
 
# マイナーロケーターを設定
ax.xaxis.set_minor_locator(mdates.MonthLocator(bymonthday=15))
 
# データをプロット
ax.plot_date(data["date"], data["value"], linestyle="solid")
 
# プロットを表示
plt.show()

この例では、まずPandasライブラリを使用してデータを読み込み、日付列をdatetime形式に変換します。次に、プロットオブジェクトを作成し、前と同じようにメジャーロケーターとメジャーフォーマッターを設定します。最後に、set_minor_locator()メソッドを使用してマイナーロケーターを設定し、各月の15日ごとに目盛りの場所を生成します。データをプロットし、show()メソッドを使用してプロットを表示します。

結論

Matplotlibは、Pythonで時系列プロットを作成するための強力なツールです。さまざまなカスタマイズオプションを備えているため、時間依存データの美しい情報処理を行うことができます。データ可視化を始めたばかりの場合、または経験豊富なデータアナリストの場合、Matplotlibはツールキットに必要不可欠な存在です。

他のPythonチュートリアル