#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)
поверните метки оси x2. возможно, вы правы, я также подумал, что маркировка каждого месяца была бы лучшей идеей, вы знаете, как я мог бы это сделать?
Ответ №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()