1

matplotlib の図を操作しようとしていますが、何かが計画どおりに進みません...

以下はスクリプトのサンプルで、スクリプトが何をすべきかの説明です: test_figure クラスの init 部分で、図 (図 1) を作成し、サブプロットを追加し、100 個のランダムな点をプロットし、テキスト ボックスのプロパティを定義し、イベント「pick_event」を関数 onpick() に接続します。この関数を使用すると、データの x 座標と y 座標を取得し、それらを使用して線をプロットし (図 2)、同時にテキストを使用して図 1 に x 座標と y 座標を表示する必要があります。

最後の部分を除いて、ほとんどすべてが機能します。x 座標と y 座標が図 1 に表示されておらず、その理由がわかりません... 何かアイデアはありますか?

ありがとう!

import numpy as np
import matplotlib.pyplot as plt

class test_figure:

    def __init__(self):
        self.fig = plt.figure(1)
        self.ax = self.fig.add_subplot(111)
        self.ax.set_title('Click on data')
        # 3 pixels around point
        line, = self.ax.plot(np.random.rand(100), 'o', picker=3) 
        self.fig.canvas.mpl_connect('pick_event', self.onpick)

    def onpick(self, event):
        thisline = event.artist
        xdata = thisline.get_xdata()
        ydata = thisline.get_ydata()
        ind = event.ind
        self.fig2 = plt.figure(2)
        self.ax2 = self.fig2.add_subplot(111)
        line, = self.ax2.plot(xdata[ind]*range(60)+ydata[ind])
        self.fig.text(0.5,0.5,'pouet :'+str(xdata[ind]))

a = test_figure()
4

1 に答える 1