2017-02-08 6 views
0

я следующий код:Как «сбросить индекс» для графика matplotlib?

fig, ax = plt.subplots(1, 1) 
calls["2016-12-24"].resample("1h").sum().plot(ax=ax) 
calls["2016-12-25"].resample("1h").sum().plot(ax=ax) 
calls["2016-12-26"].resample("1h").sum().plot(ax=ax) 

, который генерирует следующее изображение:

enter image description here

Как я могу сделать это так, что линии разделяют оси х? Другими словами, как мне заставить их не переключать дни?

ответ

1

Если вам не нужно использовать правильное значение datetime в качестве индекса, вы можете просто сбросить индекс, как вы предложили для всех серий. Это будет перекрывать все временные ряды, если это то, чего вы пытаетесь достичь.

# the below should 
calls["2016-12-24"].resample("1h").sum().reset_index("2016-12-24").plot(ax=ax) 
calls["2016-12-25"].resample("1h").sum().reset_index("2016-12-25").plot(ax=ax) 
calls["2016-12-26"].resample("1h").sum().reset_index("2016-12-26").plot(ax=ax) 

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

# have a try with the below 
calls[["2016-12-24","2016-12-25","2016-12-26"].resample('1h').sum().plot() 
+0

Решение выше сработало! один ниже не сделал. –

+0

попробуйте второе решение для 'reset_index' тоже, он должен точно так же называть [[«2016-12-24», «2016-12-25», «2016-12-26»]. Resample ('1h'). Sum(). Reset_index(). Plot() –

+0

жалуется на список, который вы проходите (даже после добавления закрывающей скобки, которую вы не видите). –

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