Я ищу более питонический способ разбить очень большой график на несколько участков, разделенных по месяцам (февраль, март и т. Д.)
Я преобразовал все значения даты в dfв DateTime с использованием
pd.to_datetime(df['dates']
Затем мне удалось создать новые переменные, содержащие фрагменты моего информационного кадра, на основе желаемых диапазонов дат, но это не похоже на самый эффективный / воспроизводимый метод.Мой первоначальный мыслительный процесс состоял в том, чтобы установить ограничение по оси X с помощью datetime () и передать два аргумента для нужных мне диапазонов дат.Все еще не очень эффективный, но мой начальный набор данных имеет только пять месяцев.
plt.figure(1)
plt.subplot(511)
plt.plot(x['dates'], y, marker='o')
plt.xticks(rotation='vertical')
plt.rcParams['figure.figsize'] = (30,10)
plt.xlabel('time')
plt.ylabel('day-over-day change')
plt.xlim([datetime.date.strftime(2019, 2, 1),
datetime.date.strftime(2019, 2, 28)])
plt.show()
Я ожидаю небольшой подзаговор, содержащий все точки данных, которые попадают в период с 1/2/2019 по 2/2/2019, но когдаЯ запускаю этот код, я получаю сообщение об ошибке типа:
TypeError: descriptor 'strftime' requires a 'datetime.date' object but
received a 'int'
РЕДАКТИРОВАТЬ: Я также пытался
plt.xlim([datetime.date(2019, 2, 1), datetime.date(2019, 2, 26)])
, но это приводит к ошибке:
TypeError: datetime.date(2019, 2, 1) is not a string
Именно поэтому я пытаюсь использовать 'strftime'
END EDIT
, при этом автоматическое создание правильного количества вспомогательных участков будет идеальным, сейчас я просто заинтересован в передачеправильные аргументы через matplotlib.pyplot (), чтобы я мог сделать данные более удобочитаемыми для моего клиента.Если кто-то хочет заняться процессом итерации через df с целью автоматизации определения количества графиков (и их правильной сегментации), я бы не стал возражать.