Я пытаюсь изменить формат даты и времени на дд-мм или мм-дд, но не знаю, как это сделать. Я просмотрел другие вопросы и ответы о переполнении стека, но я думаю, что, возможно, я сделал свой график немного иначе, чем они, поскольку я вычисляю сумму для каждого из разных дней.
data = {'date': ['2020-09-01', '2020-09-02', '2020-09-03', '2020-09-04', '2020-09-01'],
'newcases': [1, 2, 4, 7, 10]}
df = pd.DataFrame(data, columns = ['date','newcases'])
df['date'] = pd.to_datetime(df['date']) #converted to datetime
import matplotlib.dates as mdates
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d-%m'))
df.groupby('date').newcases.sum().plot(kind = 'bar')
Это то, что я пробовал, но я не могу отформатировать x-галочки в правильном формате (дд-мм). Это все еще выглядит так:
Я только что изменил исходный вопрос на образец фрейма данных. Любая помощь, которую вы можете предложить, будет высоко оценена! Я пытаюсь выучить Python и взял образец набора данных COVID-19 для практики :)






Pandas создает новую фигуру/оси при построении графика (если вы не передадите ему объект осей). Таким образом, вам нужно сначала построить график, а затем изменить средство форматирования оси графика, который вы только что создали (gca = получить текущие оси), то есть просто изменить порядок последних двух строк кода:
df.groupby('date').newcases.sum().plot(kind = 'bar')
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%d-%m'))
Привет, я пробовал это раньше, но я получаю сообщение об ошибке. Ошибка: «DateFormatter обнаружил значение x = 0, что является недопустимой датой; обычно это происходит из-за того, что вы не сообщили оси, что она отображает даты, например, с помощью ax.xaxis_date()'
Какую версию Панды вы используете? Ваш пример отлично работает с измененным порядком для pandas 1.1.3 и matplotlib 3.3.0, см. прикрепленное изображение в ответе.
для более старых версий панд вы можете использовать df.groupby(df['date'].dt.strftime('%d-%m')).newcases.sum().plot(kind = 'bar')
Ах, большое спасибо, я только что обновил свой Anaconda Navigator, и теперь он работает. Я не осознавал, что, возможно, я использовал гораздо более старую версию Anaconda!
Что вы пробовали? Можете ли вы предоставить минимальный воспроизводимый пример? (в идеале текст/код, а не скриншот)