Matplotlib 散佈圖中的懸停註解
分析散佈圖時,查看與各點關聯的特定資料非常有用。透過新增懸停時出現的註釋,您可以快速識別異常值和其他值得注意的興趣點。
實作
使用 Matplotlib 的註解功能,我們可以建立互動式僅當遊標停留在特定點附近時才可見的註解。以下程式碼示範了這種方法:
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()
當您將滑鼠懸停在散點圖中的不同點上時,註釋將出現並顯示關聯的數據,從而可以快速存取重要信息,而不會用永久標籤弄亂繪圖.
以上是如何在 Matplotlib 散點圖中建立懸停註解?的詳細內容。更多資訊請關注PHP中文網其他相關文章!