Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibでnumpyのdatetime64型の時系列データをプロットする方法

PythonのMatplotlibを使って時系列データをグラフ化する方法を解説します。日付や時刻のデータ(datetime64型など)は、そのままplot()メソッドに渡すだけで自動的に軸に反映されるため、非常に簡単です。

基本的な手順

  • numpyを使ってx(日時)とy(数値)のデータを作成する。
  • plot()メソッドで作成したxとyをプロットする。
  • show()メソッドで図を表示する。

サンプルコード

import matplotlib.pyplot as plt
import datetime
import numpy as np

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# 2021年1月1日の0時から23時までの24個の日時データを作成
x = np.array([datetime.datetime(2021, 1, 1, i, 0) for i in range(24)])

# ランダムな整数値をyとして生成
y = np.random.randint(100, size=x.shape)

plt.plot(x, y)
plt.show()

実行結果

Matplotlibでnumpyのdatetime64型の時系列データをプロットする方法

numpyのdatetime64型を直接使う場合

上記の例ではPython標準のdatetime.datetimeオブジェクトを使用していますが、numpyのdatetime64型も同様に扱えます。以下のように変換してからプロットすることも可能です。

# datetime64型に変換して使用する例
x = np.arange('2021-01-01', '2021-01-02', dtype='datetime64[h]')
y = np.random.randint(100, size=x.shape)

plt.plot(x, y)
plt.show()

ポイント

  • Matplotlibは日時データを自動的に認識し、x軸に適切な目盛りを表示します。
  • 日付フォーマットを調整したい場合は、matplotlib.datesモジュールのDateFormattermdates.AutoDateLocatorを併用すると便利です。
  • 図のサイズはfigure.figsize、レイアウトの自動調整はfigure.autolayoutで設定できます。

このように、numpyとMatplotlibを組み合わせれば、わずか数行のコードで時系列データを見やすい折れ線グラフとして可視化できます。

  1. Matplotlibでカラーバー付き2D行列をPythonでプロットする方法

    Pythonでカラーバー付きの2D行列をプロットするには、numpyを使って2次元配列(行列)を作成し、そのデータをimshow()メソッドに渡すのが最も簡単な方法です。手順numpyを使用して data2D という2次元配列を作成します。imshow() メソッドを使い、データを画像として(2次元の正規ラスタ上に)表示します。colorbar() メソッドに imshow() が返す ScalarMappable インスタンスを渡し、カラーバーを作成します。これにより、色と数値の対応関係がひと目でわかるようになります。図を表示するには、show() メソッドを使用します。コード例import

  2. Matplotlibのラベルに改行を入れる方法|Pythonサンプルコード付きで解説

    本記事では、PythonのMatplotlibを使って、グラフの軸ラベルに改行を挿入する方法を解説します。「\n」を活用することで、X軸やY軸のラベルを複数行に分けて見やすく表示できます。 実装手順 「\n」を使用して、X軸・Y軸それぞれのラベルに改行を含めたテキストを設定します。 plt.rc()メソッドで現在のrcParamsを設定し、axesグループに対してプロパティサイクルを適用します。 cyclerを使って、線の色のグループを設定します。色のリストは「r」(赤)、「g」(緑)、「b」(青)、「y」(黄)で構成されます。 Cyclerクラスは、単一の位置引数、2つの位置引数のペア、ま