So erstellen Sie schwebende Anmerkungen in einem Diagramm
Bei der Analyse von Streudiagrammen mit zahlreichen Datenpunkten kann die Identifizierung spezifischer Punkte von Interesse eine Herausforderung sein. Eine praktische Lösung besteht darin, schwebende Anmerkungen zu implementieren, die bei Cursorbewegungen zusätzliche Informationen anzeigen.
Die Matplotlib-Bibliothek bietet eine vielseitige Funktionalität zum Hinzufügen von Anmerkungen zu Diagrammen. Um schwebende Anmerkungen zu erstellen, können wir die Funktionen annotate und update_annot verwenden. Die Annotate-Funktion positioniert eine Anmerkung an einer angegebenen Koordinate, während update_annot ihren Text und ihr Erscheinungsbild basierend auf dem Index des schwebenden Datenpunkts ändert.
Um schwebende Anmerkungen zu erhalten, befolgen Sie diese Schritte:
Von Wenn Sie diesen Ansatz implementieren, können Sie ganz einfach schwebende Anmerkungen zu Ihren Streudiagrammen hinzufügen und so wertvolle Einblicke in bestimmte Datenpunkte liefern, ohne das Diagramm zu überladen.
Beispiel:
Der bereitgestellte Code Snippet demonstriert die Implementierung schwebender Anmerkungen in einem Streudiagramm:
import matplotlib.pyplot as plt import numpy as np; np.random.seed(1) x = np.random.rand(15) y = np.random.rand(15) names = np.array(list("ABCDEFGHIJKLMNO")) c = np.random.randint(1,5,size=15) norm = plt.Normalize(1,4) cmap = plt.cm.RdYlGn fig,ax = plt.subplots() sc = plt.scatter(x,y,c=c, s=100, cmap=cmap, norm=norm) 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) def update_annot(ind): 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"]])) annot.set_text(text) annot.get_bbox_patch().set_facecolor(cmap(norm(c[ind["ind"][0]]))) annot.get_bbox_patch().set_alpha(0.4) def hover(event): vis = annot.get_visible() if event.inaxes == ax: cont, ind = sc.contains(event) if cont: update_annot(ind) annot.set_visible(True) fig.canvas.draw_idle() else: if vis: annot.set_visible(False) fig.canvas.draw_idle() fig.canvas.mpl_connect("motion_notify_event", hover) plt.show()
Das obige ist der detaillierte Inhalt vonWie füge ich schwebende Anmerkungen zu Matplotlib-Streudiagrammen hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!