x, y aus einem Punktdiagramm mit mehreren Datensätzen erhalten?
Ich habe ein Streudiagramm, das sich aus verschiedenen Aufrufen zusammensetztstreuen:
import matplotlib.pyplot as plt
import numpy as np
def onpick3(event):
index = event.ind
print '--------------'
print index
artist = event.artist
print artist
fig_handle = plt.figure()
x,y = np.random.rand(10),np.random.rand(10)
x1,y1 = np.random.rand(10),np.random.rand(10)
axes_size = 0.1,0.1,0.9,0.9
ax = fig_handle.add_axes(axes_size)
p = ax.scatter (x,y, marker='*', s=60, color='r', picker=True, lw=2)
p1 = ax.scatter (x1,y1, marker='*', s=60, color='b', picker=True, lw=2)
fig_handle.canvas.mpl_connect('pick_event', onpick3)
plt.show()
Ich möchte, dass die Punkte anklickbar sind und das x, y der ausgewählten Indizes erhalten. Jedoch seitscatter
mehr als einmal aufgerufen wird, bekomme ich die gleichen Indizes zweimal, so dass ich nicht verwenden kannx[index]
in deronpick3
Methode
Gibt es einen einfachen Weg, um die Punkte zu bekommen?
Es scheint, dassevent.artist
gibt das gleiche zurückPathCollection
das wird zurückgegeben vonscatter
(p
undp1
in diesem Fall). Aber ich konnte keine Möglichkeit finden, es zum Extrahieren des zu verwendenx,y
der ausgewählten Indizes Versucht mitevent.artist.get_paths()
- aber es scheint nicht alle Streupunkte zurückzugeben, sondern nur den, auf den ich geklickt habe. Also bin ich mir wirklich nicht sicher, wasevent.artist
gibt zurück und was sind dieevent.artist.get_paths()
Funktion gibt zurück
Es scheint, dassevent.artist._offsets
gibt ein Array mit den relevanten Offsets an, aber aus irgendeinem Grund, wenn versucht wird, es zu verwendenevent.artist.offsets
Ich bekomme
AttributeError: 'PathCollection' object has no attribute 'offsets'
(obwohl wenn ich das verstehedocssollte es da sein)