我是Python的新手,我正在尝试创建一个简单的折线图,其中x轴为时间,y为y值。我有一个CSV文件,可以从中导入数据。
数据样本如下所示
我尝试使用以下代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
a_data = pd.read_csv("Data Sampler.csv")
plt.plot(a_data.Timestamp, a_data.a)
但是,我收到一条错误消息:AttributeError:' Series'对象没有属性'找到'
a_data.dtypes告诉我Timestamp是一个对象而A是float 64。
有人可以帮忙吗?从谷歌搜索解决方案,看起来我需要将时间戳转换为Python中的日期时间 - 但是我没有太多运气(很多错误消息)。
提前致谢。
答案 0 :(得分:1)
如果您使用matplotlib.__version__ >= 1.5.0
,则以下内容应该有效:
In [4]: df
Out[4]:
Timestamp A
0 03/10/2016 16:00 0.033361
1 04/10/2016 16:01 0.123108
2 05/10/2016 16:02 0.021805
In [5]: df.index = pd.to_datetime(df.Timestamp, dayfirst=True)
In [6]: df
Out[6]:
Timestamp A
Timestamp
2016-10-03 16:00:00 03/10/2016 16:00 0.033361
2016-10-04 16:01:00 04/10/2016 16:01 0.123108
2016-10-05 16:02:00 05/10/2016 16:02 0.021805
In [7]: plt.plot('A', data=df)
Out[7]: [<matplotlib.lines.Line2D at 0x7f8e3c0e8150>]
In [7]: plt.show()
根据数据的比例,您可以使用适当的刻度格式器调整x轴的刻度格式,有关示例,请参阅here。