Функция plot_date устанавливает xticks для почасовых данных - PullRequest
0 голосов
/ 09 октября 2018

В настоящее время у меня есть функция, которая создает график временных рядов из данных времени / даты в формате ММ-ДД-ГГГГ ЧЧ-ММ.Я не уверен в том, как изменить отметки оси X таким образом, чтобы он отображал часы, а также дату, поскольку в настоящее время он показывает только даты.

Строка set_major_locator, которую я включил, возвращает только тики, у которых есть год, даже если я указал hour_locator, а данные ежечасные.

def graph(region):

    fig = plt.figure(num=None, figsize=(60, 20), dpi=100, facecolor='w', edgecolor='k')

    df_da_region = df_da_abv_09[df_da_abv_09['Settlement Point'] == region]
    df_rt_region = df_rt_abv_09[df_rt_abv_09['Settlement Point Name'] == region]

    fig = plt.plot_date(x=list(df_da_region['DateTime']), y=list(df_da_region['Settlement Point Price']), xdate = True, fmt="r-", linewidth=0.7)
    fig = plt.plot_date(x=list(df_rt_region['DateTime']), y=list(df_rt_region['Settlement Point Price']), xdate = True, fmt="g-", alpha=0.5, linewidth=0.7)

    fig = plt.gca().xaxis.set_major_locator(mdates.HourLocator(interval=5))
    plt.show()

enter image description here

1 Ответ

0 голосов
/ 10 октября 2018

Используйте matplotlib.dates.DateFormatter.Сначала импортируйте его сверху

import matplotlib.dates as mdates

, затем замените эту строку

fig = plt.gca().xaxis.set_major_locator(mdates.HourLocator(interval=5))

на что-то вроде

myFmt = mdates.DateFormatter('%y-%m-%d %H') # here you can format your datetick labels as desired
plt.gca().xaxis.set_major_formatter(myFmt)

В примере со случайными числами (поскольку вы не предоставили пример данных), он выглядит следующим образом:

enter image description here

Здесь форматервыбрал как хотел: даты + часы.Для получения дополнительной информации о том, как отформатировать дату на оси, проверьте здесь

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