Форматирование оси X в pandas и matplotlib

#python #pandas #date #matplotlib #visualization

#python #pandas #Дата #matplotlib #визуализация

Вопрос:

Как вы знаете, проверив изображение ниже, ось X содержит час, минуту, секунду

Я хочу удалить часы, минуты, секунды по оси X

Как я могу решить эту проблему?

 df = pd.read_csv('./new_df2_count_per_date_{0}.csv'.format(str_day))
    df['Total_date'] = pd.to_datetime(df['Total_date'])
    df = df.set_index('Total_date')
    ax = df.plot.bar()
    ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
    plt.xlabel("Date")
    plt.ylabel("Count")
    plt.show()
  

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

Ответ №1:

Вы можете изменить значения индекса в pandas side, преобразовав даты и времени в строки в формате YYYY-MM-DD :

 ax = df.plot.bar()
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
  

Для:

 ax = df.set_index(df.index.strftime('%Y-%m-%d')).plot.bar()