Heim > Backend-Entwicklung > Python-Tutorial > Wie erstelle ich schwebende Anmerkungen in Matplotlib-Streudiagrammen?

Wie erstelle ich schwebende Anmerkungen in Matplotlib-Streudiagrammen?

Mary-Kate Olsen
Freigeben: 2025-01-01 08:54:10
Original
462 Leute haben es durchsucht

How to Create Hovering Annotations in Matplotlib Scatter Plots?

Hovering-Anmerkungen in Matplotlib-Streudiagrammen

Bei der Analyse von Streudiagrammen kann es hilfreich sein, die spezifischen Daten anzuzeigen, die einzelnen Punkten zugeordnet sind. Durch das Hinzufügen von Anmerkungen, die beim Bewegen des Mauszeigers angezeigt werden, können Sie Ausreißer und andere wichtige Punkte von Interesse schnell identifizieren.

Implementierung

Mithilfe der Anmerkungsfunktionen von Matplotlib können wir interaktive Inhalte erstellen Anmerkungen, die nur sichtbar werden, wenn sich der Cursor in der Nähe eines bestimmten Punktes befindet. Der folgende Code demonstriert diesen Ansatz:

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()
Nach dem Login kopieren

Wenn Sie mit der Maus über verschiedene Punkte im Streudiagramm fahren, wird die Anmerkung angezeigt und zeigt die zugehörigen Daten an, sodass Sie schnell auf wichtige Informationen zugreifen können, ohne das Diagramm mit permanenten Beschriftungen zu überladen .

Das obige ist der detaillierte Inhalt vonWie erstelle ich schwebende Anmerkungen in Matplotlib-Streudiagrammen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage