J'ai tracé un ensemble de points et intégré le tracé dans la toile Tkinter. Ce que j'essaie de faire est de récupérer les coordonnées lorsque l'on clique sur un ou plusieurs points. J'ai été capable de le faire en utilisant le code suivant (avant de l'intégrer dans Tkinter). Cependant, cela ne fonctionne que pour la première parcelle de l'itération. Comment puis-je l'étendre pour les deux parcelles suivantes? Quelqu'un peut-il expliquer s'il vous plaît les changements doivent être faits en utilisant une toile?Récupérer les coordonnées de Tkinter Canvas
outl=[]
index = []
list_rep = []
def on_pick(event):
thisline = event.artist
xdata, ydata = thisline.get_data()
tmp = []
index.append(i)
ind = event.ind
tmp.append(list(xdata[ind])[0])
tmp.append(list(ydata[ind])[0])
outl.append(tmp)
#print('on pick line:', zip(xdata[ind], ydata[ind]))
new_ydata1 = []
new_ydata2 = []
new_ydata3 = []
for i in range(3):
root = Tk.Tk()
root.wm_title("Embed in Tk")
ydata1 = np.array(Max_Correct_1[i])
ydata2 = np.array(Max_Correct_2[i])
ydata3 = np.array(Max_Correct_3[i])
Aveg=np.array(Avg[i])
f = Figure(figsize=(5,4), dpi=100)
ax1 = f.add_subplot(111)
ax1.axis([-9.5,-4.0,-10,105])
ax1.plot(Log_Values_Array,ydata1,'o',picker=7)
ax1.plot(Log_Values_Array,ydata2,'*',picker=7)
ax1.plot(Log_Values_Array,ydata3,'^',picker=7)
ax1.plot(Log_Values_Array,Aveg,'b--')
canvas = FigureCanvasTkAgg(f, master=root)
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
canvas.mpl_connect('pick_event',on_pick)
print outl
canvas.get_tk_widget().delete("all")
outl=[]
index = []
Tk.mainloop()
J'ai été capable de collecter des coordonnées, mais j'ai un autre problème. Puisque je l'exécute en boucle, par ex. 3 parcelles, il choisit les coordonnées pour l'intrigue, mais pas pour les parcelles suivantes. Y a-t-il un clair/mise à jour manquant quelque part? Merci – user2332994
utilise-t-il matplotlib? Si c'est le cas, vous pouvez ajouter une balise pour cela et/ou ajouter cette information dans la description. En outre, vous dites qu'il se plaint d'une ligne particulière, mais ne montrez pas ce que la plainte est. Pouvez-vous montrer l'erreur réelle que vous obtenez? –
Salut Bryan, j'ai été capable de me débarrasser de l'erreur d'événement, mais dans le code ci-dessous, quand je parcourt les parcelles et que je choisis des points pour faire des calculs, il le fait uniquement pour l'intrigue n ° 1. Pour les graphiques 2 et 3, l'événement pick_event ne semble pas fonctionner. – user2332994