用python绘制时间

问题描述 投票:0回答:2

我有一个看起来像这样的大熊猫数据框

enter image description here

我想在X-axis上绘制时间,在Y-axis上绘制销售量。这是我到目前为止尝试过的。

ax = sns.scatterplot(x="Time", y="sales", data=df)

我收到错误提示:

无法解释输入的“时间”

python matplotlib seaborn
2个回答
0
投票

我看不到您的其余代码,因此错误的原因尚不清楚,但是由于该函数似乎在x轴上的值存在问题,因此我怀疑格式存在问题这些值。请添加其余代码,以便我对问题有更清晰的了解。


0
投票

如之前在此线程中所述,您需要格式化x轴

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]
})

# Ninja edit: I did not actually need these two following lines
# df['times'] = pd.to_datetime(df['times'])
# df['times'] = df['times'].dt.strftime('%I:%M %p')

plt.plot(df['times'], df['sales'])
plt.show() 
© www.soinside.com 2019 - 2024. All rights reserved.