【发布时间】:2020-03-22 14:35:01
【问题描述】:
我是 python 编码的新手,但已经玩了一段时间了 我构建了一个读取器,它从我的断路器盒中获取安培读数并想要绘制它
我正在尝试使用 matplotlib 从 CSV 文件中绘制日期。 我正在读取这样的 CSV 文件:(这是我每分钟读取的一个小样本)
03:59:01,1,0.000,2,0.000,3,0.000,4,0.622,
04:00:01,1,12.000,2,0.000,3,0.000,4,0.627,
我只查看第 0 列(时间)和第 3 列(值) 我知道时间不是 INT,所以它不会导入它 IE:我明白了
ValueError: invalid literal for int() with base 10: '03:59:55'
当它读入时我如何转换它以便我可以?
import matplotlib.pyplot as plt
import numpy as np
import csv
x = []
y = []
# read in file columns 0 and 2
with open('bob1.csv','r') as csvfile:
plots = csv.reader(csvfile, delimiter=',')
next(plots)
for row in plots:
x.append(int(row[0]))
y.append(float(row[2]))
plt.plot(x,y, label='Loaded from file!')
plt.savefig('test7.png',dpi=720)
我已经进行了一些基本的谷歌搜索,但没有任何内容可以帮助我完成工作。 我知道有很多为什么要这样做。因此,如果有人有时间并愿意帮助我更好地获取此代码,我将不胜感激。
谢谢
【问题讨论】:
-
尝试查看 pandas,将您的 csv 转换为数据框,然后您可以更轻松地绘制所有内容。使用 Pandas,您可以选择索引,即带有时间的列,然后您可以绘制所需的列
标签: python numpy matplotlib time