2015-12-29 2 views
0

Хорошо, поэтому я пытаюсь построить полную дату на xaxis графика pyplot. Дата в стандартном формате, 2015-11-20 00:01:00
Я превратил его в ряд с него следующим кодом ...Python 3: график полной даты с pyplot

import matplotlib.dates as mdates 
import datetime 
import matplotlib.pyplot as plt 
# xList is obtained from a csv file, it's a list of strings 
xList = ['2015-11-20 00:01:00' for u in range(100)] 
x = [mdates.date2num(datetime.datetime.strptime(op,'%Y-%m-%d %H:%M:%S')) for op in xList] 
# yes that line is horrible, but it was okay for the playground 
# I convert the string into the date format, and then convert it into a number 
y = [u for u in range(len(x)) 
plt.plot_date(x,y) 
plt.show() 

В результате диагональная линия (на самом деле по какой-то причине подумайте, когда используется параметр plot_date) только с временной частью даты на оси x. Это проблема, потому что мои данные охватывают изменяемые дни, и я хотел бы узнать, какие события произошли в день.

Я также пробовал передавать только преобразованный формат даты (без применения mdates.date2num), и я получаю тот же результат. Любая помощь будет принята с благодарностью.

ответ

0

Вместо plot_date просто используйте функцию построения графика. Однако, добавьте в

plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d %H:%M:%S')) 
plt.plot(x,range(len(x)) 
plt.gcf().autofmt_xdate() 

когда вы вызываете функцию графика.

+0

Удивительный, это сработало, спасибо! Я пробовал это раньше без первой строки. – halolord01

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