クリックしたときに散布図の点(SpotItem
インスタンス)に関連付けられたユーザデータを取得しようとしています。 documentationに記載されている方法(またはsize()
など)はうまく機能しているようですが、data()
メソッドを適用すると、NoneType
オブジェクトが返されます。私は実際にそれが私のユーザーデータを返すと期待していましたが、そうではありません。PyQtGraph SpotItemは、ユーザデータを呼び出すときに 'NoneType'を返します
そこで、関連する元のデータをどのように取り込むことができますか? 私が実際に必要とするのは、x[i]
y[i]
のセットを元に戻すことができるクリックされたポイントの元の入力リストのインデックスi
のようなものです。ここで
は私のサンプルコードです:
import pyqtgraph as pg
#some dummy data
x=[0,1,2,3,4,5,3.5,3.4]
y=[5,4,3,2,1,0,3.4,3.5]
win=pg.GraphicsWindow()
p1=win.addPlot(row=1, col=1)
my_data=pg.ScatterPlotItem(x,y,symbol='o',size=30)
p1.addItem(my_data)
def clicked(items,points):
print("point data: ",points[0].data())
my_data.sigClicked.connect(clicked)
私は(スパイダー3.1.4と)のPython 3.6を使用しています、Qtの5.6とPyQtは5
これはまさに私が探していたものです。したがって、 'data'メソッドは、' SpotItem'ではなく、 'ScatterPlotItem'に適用される必要があります。次に、関連するユーザーデータを返します。ありがとう! – Lobo