Ich versuche, Daten in einem Pandas-Datenrahmen zu plotten, mit dem Index, der ein Datum und eine Zeit ist, als x-Achse, und der Rest der Daten im Datenrahmen als die tatsächlichen Daten. Hier ist, was ich versuche jetzt:Wie man einen Datumsindex aus einem Pandas-Dataframe zieht, um als x-Achse in Matplotlib zu verwenden
from matplotlib.finance import candlestick2
bars[['open','high','low','close']].head()
tickdatetime open high low close
2012-09-20 09:00:00 1447.50 1447.50 1447.00 1447.00
2012-09-20 09:01:00 1447.00 1447.25 1447.00 1447.25
2012-09-20 09:02:00 1447.25 1447.75 1447.25 1447.50
2012-09-20 09:03:00 1447.75 1447.75 1447.25 1447.50
2012-09-20 09:04:00 1447.25 1447.50 1447.25 1447.50
fig,ax = plt.subplots()
ax.plot_date(bars.ix.to_pydatetime(), s, 'v-')
fig,ax = plt.subplots()
ax.plot_date(bars.ix.to_pydatetime(), s, 'v-')
ax = fig.add_axes([0.1, 0.2, 0.85, 0.7])
ax.autoscale_view()
linecol, rectcol = candlestick2(ax,bars['open'],bars['close'],bars['high'],bars['low'],width=.5,colorup='g',colordown''r',alpha=1)
z = rectcol.get_zorder()
linecol.set_zorder(0.9*z)
aber ich bekomme diese Fehlermeldung:
AttributeError Traceback (most recent call last)
<ipython-input-57-d62385067ceb> in <module>()
1 fig,ax = plt.subplots()
----> 2 ax.plot_date(bars.ix.to_pydatetime(), s, 'v-')
3
4 #ax = fig.add_axes([0.1, 0.2, 0.85, 0.7])
5 ax.autoscale_view()
AttributeError: '_NDFrameIndexer' object has no attribute 'to_pydatetime'
Ich verstehe, dass bars.plot() ist eine nette Schnittstelle dies automatisch zu handhaben, aber ich möchte in der Lage sein, Dinge wie candlestick2, mehr Subplots, etc. zu tun.
Ich denke, die Wurzel meines Problems ist nur versuchen, die Indexwerte aus dem Datenrahmen zu bekommen, und die Indexwerte zu Datum, aber ich konvertieren Das war bisher nicht möglich.
Irgendwelche Ideen werden geschätzt!
Sie sollten bars.index anstelle von bars.ix verwenden –