Cara Membuat Anotasi Berlegar dalam Plot
Apabila menganalisis plot taburan dengan banyak titik data, mengenal pasti tempat menarik tertentu boleh menjadi mencabar. Satu penyelesaian yang mudah ialah melaksanakan anotasi berlegar yang memaparkan maklumat tambahan semasa pergerakan kursor.
Pustaka matplotlib menyediakan fungsi serba boleh untuk menambahkan anotasi pada plot. Untuk membuat anotasi berlegar, kami boleh menggunakan fungsi anotasi dan update_annot. Fungsi anotasi meletakkan anotasi pada koordinat yang ditentukan, manakala update_annot mengubah teks dan penampilannya berdasarkan indeks titik data yang dilegar.
Untuk mencapai anotasi yang dilegar, ikut langkah berikut:
Dengan melaksanakan pendekatan ini, anda boleh menambahkan anotasi berlegar dengan mudah pada plot taburan anda, memberikan cerapan berharga tentang titik data tertentu tanpa mengacaukan plot.
Contoh:
Coretan kod yang disediakan menunjukkan pelaksanaan anotasi berlegar pada plot berselerak:
import matplotlib.pyplot as plt import numpy as np; np.random.seed(1) x = np.random.rand(15) y = np.random.rand(15) names = np.array(list("ABCDEFGHIJKLMNO")) c = np.random.randint(1,5,size=15) norm = plt.Normalize(1,4) cmap = plt.cm.RdYlGn fig,ax = plt.subplots() sc = plt.scatter(x,y,c=c, s=100, cmap=cmap, norm=norm) annot = ax.annotate("", xy=(0,0), xytext=(20,20),textcoords="offset points", bbox=dict(boxstyle="round", fc="w"), arrowprops=dict(arrowstyle="->")) annot.set_visible(False) def update_annot(ind): pos = sc.get_offsets()[ind["ind"][0]] annot.xy = pos text = "{}, {}".format(" ".join(list(map(str,ind["ind"]))), " ".join([names[n] for n in ind["ind"]])) annot.set_text(text) annot.get_bbox_patch().set_facecolor(cmap(norm(c[ind["ind"][0]]))) annot.get_bbox_patch().set_alpha(0.4) def hover(event): vis = annot.get_visible() if event.inaxes == ax: cont, ind = sc.contains(event) if cont: update_annot(ind) annot.set_visible(True) fig.canvas.draw_idle() else: if vis: annot.set_visible(False) fig.canvas.draw_idle() fig.canvas.mpl_connect("motion_notify_event", hover) plt.show()
Atas ialah kandungan terperinci Bagaimana untuk Menambah Anotasi Berlegar pada Plot Taburan Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!