Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencipta Anotasi Berlegar dalam Matplotlib Scatter Plots?
Melayang Anotasi dalam Matplotlib Scatter Plot
Apabila menganalisis plot taburan, ia boleh berguna untuk melihat data khusus yang dikaitkan dengan titik individu. Dengan menambahkan anotasi yang muncul pada tuding, anda boleh mengenal pasti outlier dan tempat menarik penting yang lain dengan cepat.
Pelaksanaan
Menggunakan keupayaan anotasi Matplotlib, kami boleh mencipta interaktif anotasi yang hanya kelihatan apabila kursor berlegar berhampiran titik tertentu. Kod berikut menunjukkan pendekatan ini:
import matplotlib.pyplot as plt import numpy as np # Generate random scatter plot data x = np.random.rand(15) y = np.random.rand(15) names = np.array(list("ABCDEFGHIJKLMNO")) # Create scatter plot and annotation fig, ax = plt.subplots() sc = plt.scatter(x, y, c=np.random.randint(1, 5, size=15), s=100) 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) # Define hover function to update annotation def hover(event): # Check if hover is within axis and over a point if event.inaxes == ax and annot.get_visible(): cont, ind = sc.contains(event) if cont: # Update annotation with point data 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"]])) # Show annotation and update figure annot.set_text(text) annot.set_visible(True) fig.canvas.draw_idle() else: # Hide annotation annot.set_visible(False) fig.canvas.draw_idle() # Connect hover event to function fig.canvas.mpl_connect("motion_notify_event", hover) plt.show()
Apabila anda menuding pada titik yang berbeza dalam plot berselerak, anotasi akan muncul dan memaparkan data yang berkaitan, memberikan akses pantas kepada maklumat penting tanpa mengeruhkan plot dengan label kekal .
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Anotasi Berlegar dalam Matplotlib Scatter Plots?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!