簡體   English   中英

Python-matplotlib:無法使用鏈接到事件的函數在圖形上顯示文本

[英]Python-matplotlib: Can't display text on figure using a function linked to an event

我正在嘗試與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()

self.fig.canvas.draw()

到回調結束。 text (幾乎與所有axes類方法一樣)會將美工添加到圖形中,但不會強制重新渲染。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM