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

Matplotlibの曲線にカーソルを追加するにはどうすればよいですか?


Matplotlibの曲線にカーソルを追加するには、次の手順を実行します-

  • 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。
  • tを作成します およびs numpyを使用したデータポイント。
  • 図とサブプロットのセットを作成します。
  • カーソルクラスインスタンスを取得して、プロット上のカーソルポイントを更新します。
  • mouse_eventで、マウスの現在の位置のxおよびyデータを取得します。
    • xおよびyデータポイントのインデックスを取得します。
    • xとyの位置を設定します。
    • テキストの位置を設定し、aggバッファとマウスイベントを再描画します。
  • プロットt およびs plot()を使用したデータポイント メソッド。
  • いくつかの軸プロパティを設定します。
  • 図を表示するには、 show()を使用します メソッド。

import matplotlib.pyplot as plt
import numpy as np

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

class CursorClass(object):
    def __init__(self, ax, x, y):
        self.ax = ax
        self.ly = ax.axvline(color='yellow', alpha=0.5)
        self.marker, = ax.plot([0], [0], marker="o", color="red", zorder=3)
        self.x = x
        self.y = y
        self.txt = ax.text(0.7, 0.9, '')

def mouse_event(self, event):
    if event.inaxes:
        x, y = event.xdata, event.ydata
        indx = np.searchsorted(self.x, [x])[0]
        x = self.x[indx]
        y = self.y[indx]
        self.ly.set_xdata(x)
        self.marker.set_data([x], [y])
        self.txt.set_text('x=%1.2f, y=%1.2f' % (x, y))
        self.txt.set_position((x, y))
        self.ax.figure.canvas.draw_idle()
     else:
        return

t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2 * 2 * np.pi * t)

fig, ax = plt.subplots()

cursor = CursorClass(ax, t, s)
cid = plt.connect('motion_notify_event', cursor.mouse_event)

ax.plot(t, s, lw=2, color='green')
plt.axis([0, 1, -1, 1])

plt.show()

出力

Matplotlibの曲線にカーソルを追加するにはどうすればよいですか? Matplotlibの曲線にカーソルを追加するにはどうすればよいですか?


  1. Matplotlibでpcolormeshをアニメーション化する方法は?

    pcolormeshをアニメーション化するには matplotlibでは、次の手順を実行できます- 図とサブプロットのセットを作成します。 numpy を使用してx、y、tデータポイントを作成します 。 X3を作成します 、 Y3 およびT3、メッシュグリッドを使用して座標ベクトルから座標行列を返します。 pcolormesh()を使用して、不規則な長方形グリッドで疑似カラープロットを作成します メソッド。 colormeshでカラーバーを作成する 軸。 pcolormeshをアニメーション化する Animation()を使用する クラスメソッ

  2. Matplotlibでhist2dプロットのカラーバーを追加するにはどうすればよいですか?

    hist2dのカラーバーを追加するには プロットでは、スカラーのマッピング可能なオブジェクトをcolorbar()メソッドの引数に渡すことができます。 ステップ numpyを使用してxおよびyデータポイントを作成します。 subplots()を使用して、図とサブプロットのセットを作成します メソッド。 hist2d()を使用して2Dヒストグラムプロットを作成します メソッド。 hist2dスカラーマップ可能インスタンスのカラーバーを作成します。 図を表示するには、 show()を使用します メソッド。 例 import numpy as np from m