2013-03-04 4 views
5

Ich zeichne Zeitreihendaten, die Systemeigenschaften von mehreren Knoten vergleichen. Ich möchte die Linie von einem bestimmten Knoten explizit entlang seiner Linie beschriften. Bis jetzt ist es mir gelungen, einen separaten Linienstil für den bestimmten Knoten zu erstellen, der ihm eine markante Linie und einen unverwechselbaren Stilmarker in der Legendenbox verleiht.matplotlib/pandas: put line label entlang der geplotteten Linien im Zeitreihendiagramm

Ich versuche einen Weg zu finden, ein unverwechselbares Etikett entlang der Linie zu platzieren, möglicherweise entlang der Linie. Irgendeine Möglichkeit, das zu erreichen?

Antwort

5

Text Kurve entlang der Linie ist nicht einfach mit Matplotlib zu tun, aber annotate können Sie einfach die Zeile mit Text und einem Pfeil beschriften.

z.

import matplotlib.pyplot as plt 
import numpy as np 

# Generate some data 
x = np.linspace(0, 20, 200) 
y = np.cos(x) + 0.5 * np.sin(3 * x) 

fig, ax = plt.subplots() 
ax.plot(x, y) 

ax.annotate(r'$y = cos(x) + \frac{sin(3x)}{2}$', xy=(x[70], y[70]), 
      xytext=(20, 10), textcoords='offset points', va='center', 
      arrowprops=dict(arrowstyle='->')) 
plt.show() 

enter image description here

+0

Dank für die Idee. Ich war mir der Anmerkungen bewusst, wollte sie aber verwenden, um auf wichtige Phasen rechtzeitig hinzuweisen. Ich werde jetzt mit Annotate spielen, um das in diesem Beitrag angestrebte Ziel zu erreichen. Hürde wird sein, programmatisch einen Punkt in der spezifischen Linie zu finden, wo er von anderen Linien getrennt ist. –

Verwandte Themen