Как уже говорилось ранее в этой теме, вам нужно отформатировать x-axsis
from datetime import datetime
import matplotlib.pyplot as plt
times = ['01:00 AM','02:00 AM','03:00 AM','04:00 AM','05:00 AM']
sales = [256, 147, 478, 569, 147]
format = '%I:%M %p'
timesFormated =[]
for i in times:
timesFormated.append(datetime.strptime(i, format))
plt.plot(timesFormated, sales)
plt.show()
РЕДАКТИРОВАТЬ:
Я заметил, что вы упомянули, что у вас есть кадр данных pada, поэтому здесь другой вариант
import matplotlib.pyplot as plt
import pandas as pd
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
df = pd.DataFrame({
'times':['01:00 AM','02:00 AM','03:00 AM','04:00 AM','05:00 AM'],
'sales':[256, 147, 478, 569, 147]
})
print("Time column type before: ", df['times'].dtypes) # EDIT 2
df['times'] = pd.to_datetime(df['times'],format='%I:%M %p' ) # EDIT 2
print("Time column type after: ", df['times'].dtypes) # EDIT 2
plt.plot(df['times'], df['sales'])
plt.show()
РЕДАКТИРОВАТЬ 2:
См. мои добавленные 3 строки выше, Это дает формат столбца времени до и после его преобразования:
>>>Time column type before: object
>>>Time column type after: datetime64[ns]