非常新的Python,第一次使用matplotlib
我正在尝试根据CSV文件的行绘制多线图。
CSV文件如下所示:
Row1 S1 S2 S3 HWS
Row2 2.45 3.76 2.44 1
Row3 3.59 2.56 9.68 2
Row4 2.54 9.45 6.78 3
我想按照csv文件中的每一行绘制HWS值。
Ex:对于Row2,我希望我的分数为(1,2.45),(2,3.66)和(3,2.44)。 对于Row3,我希望我的分数为(1,3.59),(2,2.56)和(3,9.68)。
我已经从其他堆栈溢出答案中查看了像pandas这样的模块,但我找不到按行绘制的命令。我找到的只是绘制整个CSV文件图表的方法或隔离csv文件列的方法。
有没有办法使用Python和matplotlib以这种方式绘制图形?
答案 0 :(得分:2)
将csv中的每一列读入单独的列表中。
绘制数据是微不足道的。以下是代码中的基本示例,数据集来自csv。
import matplotlib.pyplot as plt
s1 = [2,3,2]
s2 = [3,2,9]
s3 = [2,9,6]
hws = [1,2,3]
plt.plot(hws,s1)
plt.plot(hws,s2)
plt.plot(hws,s3)
答案 1 :(得分:1)
如果你有一个庞大的数据集,试试这个。!
import csv
import matplotlib.pyplot as plt
import os
os.chdir(r"C:\--") #path of your csv file
S1=[]
S2=[]
S3=[]
HWS=[]
with open('dataSet.csv','r') as csvFile:
reader=csv.reader(csvFile,delimiter=';')
next(reader)
for row in reader:
temp=row[0]
S1.append(temp)
temp=row[1]
S2.append(temp)
temp=row[2]
S3.append(temp)
temp=row[3]
HWS.append(temp)
plt.plot(HWS,S1)
plt.plot(HWS,S2)
plt.plot(HWS,S3)
plt.show()