На графике Matplotlib отображается дата, которой нет в рамке даты панд - PullRequest
0 голосов
/ 11 января 2019

У меня есть простой фрейм данных со списком из 10 дней. Из этих 10 дней 1 - выходной. Я назначил значение (1) каждой дате во фрейме данных. Я пытаюсь построить данные. Предполагается, что 5 января будет выходным, но оно напечатано на графике, хотя я исключил его при создании словаря, с помощью которого был создан фрейм данных. Мой код выглядит следующим образом.

from datetime import date, timedelta
import matplotlib.pyplot as plt
from pandas import DataFrame, to_datetime

START_DATE = date(2019,1,1)
DATE_LIST = []

for i in range(10):
    DATE = START_DATE + timedelta(i)
    if DATE != date(2019,1,5):
        DATE_LIST.append(DATE)

DATE_DICTIONARY = {}.fromkeys(DATE_LIST, 1)

DATAFRAME = DataFrame({"Value":DATE_DICTIONARY})
DATAFRAME.reindex(to_datetime(DATAFRAME.index)).plot(legend=False)
plt.show()

Выход при

if DATE != date(2019,1,5):

удалено и 5 января также добавлено в DATE_LIST просмотры как то так

Показатель добавления 5 января

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

Показатель исключён 5 января

1 Ответ

0 голосов
/ 11 января 2019

Не удивительно, что число 5 все еще присутствует между 4 и 6, независимо от того, есть ли у вас это число в ваших данных.

Если вы хотите рассматривать даты как категории, вы можете использовать matplotlib.

from datetime import date, timedelta
import matplotlib.pyplot as plt
from pandas import DataFrame, to_datetime

START_DATE = date(2019,1,1)
DATE_LIST = []

for i in range(10):
    DATE = START_DATE + timedelta(i)
    if DATE != date(2019,1,5):
        DATE_LIST.append(DATE)

DATE_DICTIONARY = {}.fromkeys(DATE_LIST, 1)

df = DataFrame({"Value":DATE_DICTIONARY})
df = df.reindex(to_datetime(df.index))

plt.plot(df.index.astype(str), df.values)
plt.setp(plt.gca().get_xticklabels(), rotation=45, ha="right")
plt.tight_layout()
plt.show()

enter image description here

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