2015-12-20 3 views
5

Matplotlib erlaubt es, Text innerhalb des Plots selbst mit matplotlib.axes.Axes.text() zu setzen.Matplotlib, Setze In-Plot-Text mit plt.text() mit Pandas Zeitreihendaten

Ich zeichne Pandas Series Daten, so dass die X-Achse Daten sind.

Datetime 
2014-11-08 345 
2014-11-09 678 
2014-11-10 987 
2014-11-11 258 
Freq: W-SUN, dtype: int64 

Wenn ich wollte, wie man hinzufügen Text hinzufügen Lage (x,y) = (2014-11-08, 345), könnte ich das tun? 2014-11-08 ist nicht der x-Wert auf der x-Achse. Wie kann ich diesen Ort finden?

Antwort

6

Es gibt mehrere Optionen. Sie können entweder die Werte aus dem Index der Series-Objekte, date oder datetime Objekte aus der Python-Standardbibliothek datetime oder pandas 'Timestamp-Objekt verwenden, um die X-Achse einer Beschriftung auf einem Zeitreihendiagramm festzulegen.

import pandas as pd 
from pandas import Timestamp 
import datetime as dt 
import matplotlib.pyplot as plt 

s = pd.Series({Timestamp('2014-11-08 00:00:00'): 345, 
    Timestamp('2014-11-09 00:00:00'): 678, 
    Timestamp('2014-11-10 00:00:00'): 987, 
    Timestamp('2014-11-11 00:00:00'): 258}) 

fig = plt.figure() 
ax = fig.gca() 
s.plot(ax=ax) 

i = 0 
ax.text(s.index[i], s.iloc[i], "Hello") 
ax.text(dt.date(2014, 11, 9), 500, "World") 
ax.text(Timestamp("2014-11-10"), 777, "!!!") 

plt.show() 

The result

Verwandte Themen