Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencipta Anotasi Berlegar dalam Matplotlib Scatter Plots?

Bagaimana untuk Mencipta Anotasi Berlegar dalam Matplotlib Scatter Plots?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-01 08:54:10468semak imbas

How to Create Hovering Annotations in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn