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

BEARBEITEN

Es scheint, dassevent.artist._offsets gibt ein Array mit den relevanten Offsets an, aber aus irgendeinem Grund, wenn versucht wird, es zu verwendenevent.artist.offsetsIch bekomme

AttributeError: 'PathCollection' object has no attribute 'offsets'

(obwohl wenn ich das verstehedocssollte es da sein)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage