我试图在一个线图上绘制200个频率与dB数据点。我的代码首先有很多东西可以摆脱我的数据中的标题(18行),然后尝试将列(频率和dB)保存为数组并绘制它们,但python输出一个没有错误的空白图
python非常新,所以不知道该怎么做!提前谢谢!
这是我目前的代码:
import csv
import numpy as np
import matplotlib.pyplot as plt
def skip_first(seq,n):
for i, item in enumerate(seq):
if i>=n:
yield item
frequency=[]
dB=[]
with open('2.csv','r') as s11_load:
csvreader = csv.reader(s11_load)
for row in skip_first(csvreader, 18):
frequency = row[0]
dB = row[1]
print(frequency)
#print(dB)
plt.plot(frequency,dB,linestyle='-',color='b')
plt.show()
答案 0 :(得分:1)
您始终更新频率和dB列表而不是附加到
尝试更换:
frequency = row[0]
dB = row[1]
由:
frequency.append(row[0])
dB.append(row[1])
应该做的伎俩。快乐的编码。
答案 1 :(得分:0)
尝试使用Pandas包,它可以简化您的代码:
import pandas as pd
df = read_csv("path to file", skiprows = 18) #skip headers
df.plot(x = , y = ) #Plots graph using matplotlib
答案 2 :(得分:0)
您在每个循环中为frequency
和dB
提供一个新值(浮点数)。因此,当您尝试绘制图表时,它们只是单个值。
您已将它们定义为列表,您只需append这些列表的值:
frequency=[]
dB=[]
with open('2.csv','r') as s11_load:
csvreader = csv.reader(s11_load)
for row in skip_first(csvreader, 18):
frequency.append(row[0])
dB.append(row[1])