猿问

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

我有数据的文本文件如下:


0   0:00:01.192000

1   0:00:00.977000

2   0:00:00.955000

3   0:00:00.959000

4   0:00:00.948000

5   0:00:00.934000

而python代码为:


import matplotlib.pyplot as plt


with 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 列。


请任何建议将不胜感激。


BIG阳
浏览 245回答 1
1回答

holdtom

我可以使用 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')看起来像这样:
随时随地看视频慕课网APP

相关分类

Python
我要回答