我有数据的文本文件如下: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')
看起来像这样:
添加回答
举报
0/150
提交
取消