Saat ini saya sedang mempelajari pustaka matplotlib di python 3.4. Saya berlatih pada kode di mana pengguna seharusnya berinteraksi dengan plot hanya dengan mengkliknya. Ketika klik terjadi di suatu tempat di plot, dua hal yang seharusnya terjadi: cetak nilai y dan buat garis horizontal di plot tempat klik terjadi.
Apa yang saya dapatkan ketika saya mengklik di suatu tempat di plot adalah bahwa cetakan terjadi seperti yang diinginkan tetapi garis horizontal muncul hanya jika saya menekan F (yang menutupi layar plot). Dengan kata lain, garis dibuat ketika saya mengklik plot tetapi tidak muncul sampai saya menekan F. Adakah ide mengapa itu terjadi?
Kode:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(np.random.rand(10))
def pick(event):
plt.hlines(event.ydata,event.xdata-
0.2,event.xdata+0.2,colors='r',linestyle='solid')
print('Y coord = %f'%event.ydata)
fig.canvas.mpl_connect('button_press_event',pick)
plt.show()
1 menjawab
Anda perlu menggunakan mode interaktif untuk memperbarui plot setelah setiap klik. Gunakan plt.ion() sebelum plt.show().