正如标题所解释的,我正在尝试读取 CSV 文件并绘制它,该文件采用以下格式:
Dishwasher,60,1,1,1,0,0,1
Washing Machine,200,0,0,0,0,1,1
我只想在末尾绘制 6 位数字。
这是迄今为止我的代码:
import matplotlib.pyplot as plt
import numpy as np
import csv
y1=[]
y2=[]
x = np.array([1,2,3,4,5,6])
with open('File.csv', 'r') as csvfile:
plots = csv.reader(csvfile, delimiter=',')
rows = [row for row in plots]
y1=int((rows[0])-2)
y2=int((rows[1])-2)
plt.plot(x,y1, label='Washing Machine')
plt.plot(x,y2, label='Dishwasher')
plt.show()
我已经尝试解决这个问题几个小时了,但我所做的一切都会带来新的错误。
在这段代码中,错误是:
TypeError: unsupported operand type(s) for -: 'list' and 'int'
根据我的理解,这意味着它试图将列表转换为整数,这是不可能的?感谢您的帮助
最佳答案
在这两行中:
y1=int((rows[0])-2)
y2=int((rows[1])-2)
您将列表的第一个和第二个元素减去 2 并转换为 int,将其分配给变量 y1
和 y2
这意味着你不能从列表中减去 int
我建议您在绘制之前检查您的值,您可以使用调试器或仅打印 rows
、y1
和 y2
,然后您将对正在发生的事情有更多的了解
错误告诉您到底发生了什么:
TypeError: unsupported operand type(s) for -: 'list' and 'int'
试试这个:
y1=rows[0][2:]
y2=rows[1][2:]
关于python,努力绘制 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62127261/