我正在使用matplotlib从包含文本和数字的文件中制作信息来制作重量图。数字是两行,其中包含权重和日期。该文件如下所示:
1. anonymous
2. anonymous
3.
4. 34, 76
5. 12202018, 12222018
我想使用numpy获取权重(第3行)和日期(第4行),但是我无法找到一种方法来仅检索一行以在matplotlib中进行绘制。
我曾尝试使用csv来完成此操作,但是它不起作用,因为当您创建仅检索一行的列表时,就无法在列表中绘制该行。我的代码是:
import matplotlib.pyplot as plt
import csv
x = []
y = []
with
open('example.txt') as csvfile:
readCSV = list(csv.reader(csvfile, delimiter = ','))
row3 = readCSV[3]
for row in row3:
x.append(int(row[0]))
y.append(int(row[1]))
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title("Weight Chart")
plt.legend()
plt.show()
产生的错误:
row3 = int(readCSV[3])
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
只需要澄清一下:
我想使用numpy检索文件的一行(以','表示),用作matplotlib的x和y轴。
非常感谢!
答案 0 :(得分:0)
这将从文件中获取值到您的数组中
def process(line):
line = line.rstrip()
line = line.split('.')[1]
line = line.split(',')
return line
x = list()
y = list()
counter = 0
with open('example.txt') as data_file:
for line in data_file:
if (counter == 3) or (counter == 4):
result = process(line)
x.append(int(result[0]))
y.append(int(result[1]))
counter += 1
print x
print y