2017-01-07 3 views
3

Мои данные имеют индекс datetime. Я перепробовал данные и хочу визуализировать их так, чтобы разные месяцы имели другой цвет. Вот мои данныеМогу ли я покрасить разные месяцы?

Time  Count 
2016-08-07 88 
2016-08-14 95 
2016-08-21 86 
2016-08-28 81 
2016-09-04 92 
2016-09-11 89 
2016-09-18 93 
2016-09-25 83 
2016-10-02 78 
2016-10-09 90 
2016-10-16 87 
2016-10-23 79 
2016-10-30 91 
2016-11-06 90 
2016-11-13 87 
2016-11-20 97 
2016-11-27 83 
2016-12-04 63 

Как это сделать, чтобы каждый месяц имел другой цвет?

+0

вы используете 'bash' терминал делать? –

+2

Какой сюжет вы хотите использовать? – Bonifacio2

+0

Если вы хотите распечатать даты панд в matplotlib, попробуйте следующее: [Plot pandas date in matplotlib] (http://stackoverflow.com/questions/25416955/plot-pandas-dates-in-matplotlib) –

ответ

3

По запросу на «каждый бар, принадлежащий отдельный месяц, чтобы иметь все тот же цвет». Вы можете изменить цвета на все, что вам нравится в нижеприведенном диктофоне, и затем они используются в понимании списка.

df['month'] = df.index.to_datetime().month 

colors = {8: 'r', 9: 'b', 10: 'g',11: 'y', 12: 'w',} 
df['Count'].plot(kind='bar', color=[colors[i] for i in df['month']]) 

enter image description here

+1

Я бы добавил 'rot = 45', чтобы лучше видеть ось x. – Leb

0

Это не для сюжета (я добавил это ниже), но вы также можете покрасить вывод текстовых данных, если это интересно. Я нахожу, что это может помочь мне идентифицировать группы данных.

Я создал новую колонку df['month'], и вы можете увидеть функцию, которую я применил ниже, чтобы дать вам цвет для ваших месяцев, используя style.

df['month'] = df.index.to_datetime().month 

def color_monthd(val): 

    color = 'blue' if val == 8\ 
    else 'orange' if val == 9\ 
    else 'purple' if val == 10\ 
    else 'red' if val == 11\ 
    else 'black' 

    return 'color: %s' % color 

s = df.style.applymap(color_monthd) 

enter image description here

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