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

Python Matplotlibでスクリプト実行中に図をリアルタイムに操作する方法

はじめに

PythonのMatplotlibでは、スクリプトの実行中に図をリアルタイムで操作・更新することができます。例えば、データを少しずつ追加しながらグラフの変化を目視で確認したい場合などに便利です。本記事では、plt.pause()を活用して、スクリプト実行中に図をインタラクティブに操作する手順を解説します。

実装の手順

Pythonでスクリプトの実行中に図を操作するには、以下の手順に従います。

  1. 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  2. figure()メソッドを使用して、新しい図を作成するか、既存の図をアクティブにします。
  3. 現在の軸axを取得し、fig.show()で図を表示します。
  4. ループ処理の中でplot()メソッドにより線を描画し、fig.canvas.draw()でキャンバスを再描画します。
  5. 最終的なプロットの前に、plt.pause()メソッドで一時停止することで、図の更新や操作を可能にします。
  6. 図を表示するには、show()メソッドを使用します。

コード例

import numpy as np
from matplotlib import pyplot as plt

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

fig = plt.figure()
ax = fig.gca()
fig.show()

for i in range(20):
    ax.plot(np.random.randn(10, 1), ls='-')
    fig.canvas.draw()
    plt.pause(0.1)

plt.close(fig)
plt.plot([1, -2, 3, 5, 3, 1, 0])

plt.show()

出力結果

Python Matplotlibでスクリプト実行中に図をリアルタイムに操作する方法

解説

このコードでは、まずfig.show()で空の図ウィンドウを先に表示しておきます。その後、forループ内でランダムなデータをplot()で順次追加し、fig.canvas.draw()によってキャンバスを即座に再描画しています。plt.pause(0.1)は0.1秒間の待機時間を設けると同時に、GUIイベントの処理を行うため、実行中でも図の拡大縮小や移動などの操作が可能になります。

ループが20回完了するとplt.close(fig)で図が閉じられ、続いて別のデータによる最終的なプロットがplt.show()で表示されます。この手法は、シミュレーション結果の逐次可視化やアニメーション的なデータ表示など、さまざまな場面で応用できます。

  1. Matplotlibで図のX軸にステップ(目盛り)を設定する方法

    PythonのMatplotlibで図のX軸にステップ(目盛り)を設定するには、set_xticks() および set_xticklabels() メソッドを使用します。以下の手順で実装できます。 手順 データポイントのリスト x を作成します。 subplot() メソッドを使って、現在の図にサブプロットを追加します。 set_xticks() でX軸の目盛りの位置を指定し、set_xticklabels() でラベルを設定します。このとき、引数に rotation=45 を指定すると、ラベルを45度回転させて表示できます。 図を表示するには、show() メソッドを使用します。 コー

  2. PythonのMatplotlibでワッフルチャートを作成する方法を解説

    ワッフルチャート(Waffle Chart)は、目標に対する進捗状況を視覚的に表現するのに適した、魅力的なデータ可視化手法です。四角いマスが並ぶ様子がワッフルに似ていることからこの名前が付けられており、構成比や達成率を直感的に伝えられます。Pythonでワッフルチャートを作成するには、pywaffleライブラリを使用します。新しい図を作成する際、または既存の図を有効化する際に、FigureClass=Waffleを指定することで簡単に描画できます。作成手順辞書を使ってPandasのデータフレームを作成します。plt.figure()で新しい図を作成する際に、FigureClass=Waffle