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中文网其他相关文章!