Ich habe die Spline-Interpolation verwendet, um eine Zeitreihe zu glätten, und möchte dem Plot auch eine horizontale Linie hinzufügen. Aber es scheint ein Problem zu geben, das ich nicht im Griff habe. Jede Hilfe wäre wirklich hilfreich. Folgendes habe ich:
annual = np.arange(1,21,1)
l = np.array(value_list) # a list with 20 values
spl = UnivariateSpline(annual,l)
xs = np.linspace(1,21,200)
plt.plot(xs,spl(xs),'b')
plt.plot([0,len(xs)],[40,40],'r--',lw=2)
pylab.ylim([0,200])
plt.show()
Das Problem scheint bei meiner Verwendung [0,len(xs)]
für das horizontale Zeichnen von Linien zu liegen.
python
matplotlib
Ich bin
quelle
quelle
Sie suchen
axhline
(eine horizontale Achsenlinie). Im Folgenden erhalten Sie beispielsweise eine horizontale Linie beiy = 0.5
:quelle
axhline
.Wenn Sie eine horizontale Linie in den Achsen zeichnen möchten, können Sie auch die
ax.hlines()
Methode ausprobieren . Sie müssen diey
Position undxmin
undxmax
in der Datenkoordinate angeben (dh Ihren tatsächlichen Datenbereich auf der x-Achse). Ein Beispielcode-Snippet lautet:Das obige Snippet zeichnet eine horizontale Linie in den Achsen bei
y=0.2
. Die horizontale Linie beginnt beix=4
und endet beix=20
. Das erzeugte Bild ist:quelle
axhline
wenn Sie einen bestimmten x-Bereich der Linie benötigen, die Sie zeichnen möchten. Was ist der Unterschied zwischen "Axhline" und "Hlines"?axhline
sind diexmin
undxmax
in Bezug auf die Achsen so koordiniert, dass sie im Bereich [0, 1] liegen. Sie können sehen , hier zwischen den verschiedenen Koordinatensystemen für einen Unterschied.xmin
und derxmax
Unterschied der einzige Unterschied zwischenaxhline
undhlines
ist, dominiert nicht der letztere den ersteren?Verwendung
matplotlib.pyplot.hlines
:y
kann als einzelner Ort übergeben werden:y=40
y
kann als mehrere Speicherorte übergeben werden:y=[39, 40, 41]
fig, ax = plt.subplots()
, ersetzen Sieplt.hlines
oderplt.axhline
durchax.hlines
oderax.axhline
.matplotlib.pyplot.axhline
kann nur einen einzigen Ort zeichnen (zBy=40
)quelle
Zusätzlich zu der am besten bewerteten Antwort hier kann man auch
axhline
nach dem Aufrufenplot
von apandas
's verkettenDataFrame
.quelle
Ein schöner und einfacher Weg für diejenigen, die den Befehl immer vergessen,
axhline
ist der folgendeIn deinem Fall
xs = x
undy = 40
. Wenn len (x) groß ist, wird dies ineffizient und Sie sollten es wirklich verwendenaxhline
.quelle
Sie können
plt.grid
eine horizontale Linie zeichnen.quelle