Я загружаю эти пакеты:
import pandas as pd
from matplotlib import pyplot as plt
import numpy
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib
import matplotlib.dates as mdates
sns.set()
%matplotlib inline
И у меня есть фрейм данных df
, который выглядит следующим образом
df['element_date'] = pd.to_datetime(df['element_date'])
df['mdate'] = [mdates.date2num(d) for d in df['element_date']]
df.head()
id Tier element element_date mdate
5228039 Tier B 4 2018-05-28 10:59:00 736842.457639
5232263 Tier B 3 2018-05-28 10:59:00 736842.457639
5245478 Tier B EA 2018-05-27 13:58:00 736841.581944
4975552 Tier B 2 2018-05-30 21:01:00 736844.875694
4975563 Tier A 2 2018-05-30 21:01:00 736844.875694
Я пытаюсь установить ось хграфик подсчета только для месяца и дня, и я получаю сообщение об ошибке.Это код, который я запускаю (я удалил ярлыки имен для экономии места):
fig, ax = plt.subplots(figsize=(15,10))
fig = sns.countplot(x="mdate", hue="element", data=df)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%m-%d'))
plt.show(fig)
Я получаю DateFormatter found a value of x=0, which is an illegal date. This usually occurs because you have not informed the axis that it is plotting dates, e.g., with ax.xaxis_date()
Теперь, конечно, япробовал добавить ax.xaxis_date()
, но безрезультатно.У меня также нет значений x, равных 0. Я сбросил NA, и значение подсчитано как mdate, и 0 не найдено.
Я посмотрел здесь несколько разных ответов и, похоже, не могу найти решение.Я пробовал использовать как 1017 * в качестве значения даты и времени, так и даты "mathplotlib", используя mdate
.
. Любые мысли будут высоко оценены.По сути, я просто пытаюсь сделать так, чтобы моя ось х была упорядоченной серией дат в течение двух месяцев с подсчетом элементов для каждой даты.
Спасибо!