为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 matplotlib 中绘制时间戳(毫秒)

如何在 matplotlib 中绘制时间戳(毫秒)

BIG阳 2021-11-30 16:58:58
我有数据的文本文件如下:0   0:00:01.1920001   0:00:00.9770002   0:00:00.9550003   0:00:00.9590004   0:00:00.9480005   0:00:00.934000而python代码为:import matplotlib.pyplot as pltwith open('TR.txt') as f:lines = f.readlines()y = [line.split()[0] for line in lines]x = [line.split()[1] for line in lines]fig = plt.figure(figsize=(15,10))ax1 = fig.add_subplot(111)ax1.set_title("SMP graph")ax1.set_xlabel('hour')ax1.set_ylabel('smp')ax1.bar(x,y, width=0.7)fig1=plt.gcf()plt.show()plt.draw()但是代码因为浮动在毫秒内而抛出错误。注意:我想将绘图绘制为 x 轴第 0 列和 Y 轴第 1 列。请任何建议将不胜感激。
查看完整描述

1 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

我可以使用 Pandas 为您提供以下解决方案:

读取数据,注意分隔符有两个空格。

lines = pd.read_csv('TR.txt', sep="  ", header=None, engine='python')

给出数据框列名称。Column_1 是您的时间列。

lines.columns = ['column_0', 'column_1']

我尝试了各种选项来更优雅地解析您的时间戳,但没有成功。但是,我认为您仍然可以使用十进制绘制秒数并获得有用的图表。因此,我更改了时间戳的格式并将结果转换为浮点数。

lines['column_1'] = lines['column_1'].str[6:].astype('float')

然后你画图:

lines.plot(x='column_0')

看起来像这样:

//img1.sycdn.imooc.com//61a5e7ea0001eb7c05060331.jpg

查看完整回答
反对 回复 2021-11-30
  • 1 回答
  • 0 关注
  • 244 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信