2015-12-10 2 views
1

У меня возникли проблемы с расшифровкой документации по изменению частоты тика и форматирования даты с помощью панд.Форматирование DateTimeIndex в заговоре pandas

Например:

import numpy as np 
import pandas as pd 
import pandas.io.data as web 
import matplotlib as mpl 
%matplotlib inline 

mpl.style.use('ggplot') 
mpl.rcParams['figure.figsize'] = (8,6) 

# grab some price data 
px = web.DataReader('AAPL', "yahoo", '2010-12-01')['Adj Close'] 
px_m = px.asfreq('M', method='ffill') 
rets_m = px_m.pct_change() 

rets_m.plot(kind='bar') 

генерирует этот участок:

Generated plot

Yikes. Как я могу получить тики каждый месяц или квартал или что-то разумное? И как изменить формат даты, чтобы избавиться от времени?

Я пробовал разные вещи с ax.set_xticks() и ax.xaxis.set_major_formatter, но не смог понять это.

+1

Возможный дубликат [панды таймсерии участка установки по оси X крупных и мелких клещей и этикетки] (http://stackoverflow.com/questions/12945971/pandas-timeseries-plot-setting- x-axis-major-and-minor-ticks-and-labels) –

ответ

2

Если вы используете метод plot в pandas, в set_major_locator и set_major_formatter методы matplotlib, скорее всего fail. Возможно, вам будет проще вручную настроить тики, если вы хотите остаться с методами pandas``plot.

#True if it is the first month of a quarter, False otherwise 
xtick_idx = np.hstack((True, 
         np.diff(rets_m.index.quarter)!=0)) 

#Year-Quarter string for the tick labels. 
xtick  = ['{0:d} quarter {1:d}'.format(*item) 
      for item in zip(rets_m.index.year, rets_m.index.quarter)] 
ax  =rets_m.plot(kind='bar') 

#Only put ticks on the 1st months of each quarter 
ax.xaxis.set_ticks(np.arange(len(xtick))[xtick_idx]) 

#Adjust the ticklabels 
ax.xaxis.set_ticklabels(np.array(xtick)[xtick_idx]) 

enter image description here

+1

Спасибо! Полученный из этого ответа, я написал [следующий пример] (https://gist.github.com/drorata/5165c7ac935a6162714043300852d2b6). – Dror

+0

@Dror Вы должны добавить это как правильный ответ, так как он содержит дополнительную информацию. –

Смежные вопросы