Usiłuję wykreślić dane w dataframe pandy, przy użyciu indeksu, który jest data i godzina, jako osi x, a pozostałe dane w ramce danych jako rzeczywiste dane. Oto, co próbuję teraz:Jak wyciągnąć wskaźnik daty z pomocą dataframe pandy używać jako osi x w matplotlib
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)
ale otrzymuję ten błąd:
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'
Rozumiem, że bars.plot() jest ładny interfejs do obsługi to automatycznie, ale chcę być w stanie robić rzeczy takie jak używanie świecy2, więcej wątków, itp.
Myślę, że głównym powodem mojego problemu jest po prostu próba pobrania wartości indeksowych z ramki danych i przekonwertowania wartości indeksu na czasy nie udało się jeszcze tego zrobić.
Wszelkie pomysły są mile widziane!
Należy użyć bars.index zamiast bars.ix –