При построении объекта pd.Series год не отображается правильно - PullRequest
0 голосов
/ 20 марта 2019

Я отображаю результаты измерений датчика влажности во времени. Я использую Python 3.7.1 и Pandas 0.24.2.

У меня есть список с именем dateTimeList со строками даты и времени:

dateTimeList = ['15.3.2019 11:44:27', '15.3.2019 12:44:33', '15.3.2019 13:44:39']

Я написал этот код, где index - это объект DatetimeIndex, а humList - список с плавающей точкой.

    index = pd.to_datetime(dateTimeList, format='%d.%m.%Y %H:%M:%S')
    ts = pd.Series(humList, index)

    plt.figure(figsize=(12.80, 7.20))
    ts.plot(title='Gráfico de Humedad en el Tiempo', style='g', marker='o')

    plt.xlabel('Tiempo [días]')
    plt.ylabel('Humedad [V]')
    plt.grid()
    plt.savefig('Hum_General'+'.png', bbox_inches='tight')
    plt.show()

И у меня есть два результата: один с данными за февраль 1 , а другой с данными за март 2 .

Проблема в том, что в марте вместо 2019 года на оси x появляются последовательности 00 12 00 12. Я думаю, что важно отметить, что это происходит только на данных марта, так как февраль в порядке, и данные обоих месяцев имеют одинаковую структуру. День и месяц отображаются правильно на обоих графиках.

Я также пытался с:

index = [ pd.to_datetime(date, format='%d.%m.%Y %H:%M:%S') for date in dateTimeList]

Теперь index - список объектов Timestamps. Те же результаты.

1 Ответ

0 голосов
/ 24 марта 2019

Добавьте это сразу после создания графика

import matplotlib.dates as mdates  # this should be on the top of the script
xfmt = mdates.DateFormatter('%Y-%m-%d')
ax = plt.gca()
ax.xaxis.set_major_formatter(xfmt)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...