Как мне очистить ось x?

#python #pandas #bar-chart #seaborn

#python #панды #гистограмма #сиборн

Вопрос:

Я пробовал plt.gcf().autofmt_xdate() , но это не исправляет перекрывающиеся даты на оси x. Как мне очищать ось x каждую неделю, а не каждый день?

 # Convert string column into date
df['date'] = pd.to_datetime(df['date'], format = "%Y-%m-%d")

plt.figure(figsize=(14,10))
plt.title("Daily Tests")
plt.ylabel("Number of confirmed cases")
plt.xlabel("Date")
sns.barplot(x=df['date'], y=df['confirmed'])
plt.show()
  

График:
введите описание изображения здесь

любые предложения будут оценены.

Комментарии:

1. уровень дня в оси x очень сложный. так что лучше попробуйте уровень месяца или plt.xticks(rotation=70) поверните метки оси x

2. возможно, вы правы, я также подумал, что маркировка каждого месяца была бы лучшей идеей, вы знаете, как я мог бы это сделать?

Ответ №1:

Установите интервал mdates.DayLocator(interval=14) , чтобы управлять данными временных рядов по оси x. В этом случае он установлен на две недели.

 import matplotlib.pyplot as plt
import matplotlib.dates as mdates

fig = plt.figure(figsize=(14,10))
ax = fig.add_subplot(111)

sns.barplot(x=df['date'], y=df['confirmed'], ax=ax)

ax.set_title("Daily Tests")
ax.set_ylabel("Number of confirmed cases")
ax.set_xlabel("Date")

days = mdates.DayLocator(interval=14)
days_fmt = mdates.DateFormatter('%m-%d')
ax.xaxis.set_major_locator(days)
ax.xaxis.set_major_formatter(days_fmt)

plt.show()
  

введите описание изображения здесь