Python 如何绘制整个数据数组,而不仅仅是其中的单个值?
我试图在一个折线图上绘制200个频率与dB的数据点。我的代码首先有很多东西要去掉数据18行中的标题,然后尝试将列frequency和dB保存为数组并绘制它们,但是python输出的是一个没有错误的空白图 python非常新,所以不确定在这里做什么!提前谢谢 这是我目前的代码:Python 如何绘制整个数据数组,而不仅仅是其中的单个值?,python,Python,我试图在一个折线图上绘制200个频率与dB的数据点。我的代码首先有很多东西要去掉数据18行中的标题,然后尝试将列frequency和dB保存为数组并绘制它们,但是python输出的是一个没有错误的空白图 python非常新,所以不确定在这里做什么!提前谢谢 这是我目前的代码: import csv import numpy as np import matplotlib.pyplot as plt def skip_first(seq,n): for i, item in enume
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()
尝试使用Pandas软件包,它可以简化您的代码:
import pandas as pd
df = read_csv("path to file", skiprows = 18) #skip headers
df.plot(x = , y = ) #Plots graph using matplotlib
在每个循环中,给频率和分贝一个新值一个浮点数。所以,当你试图绘制图表时,它们只是单个值
您已经将它们定义为列表,只需将值添加到这些列表:
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])
您总是更新频率和数据库列表,而不是附加到它们 尝试替换:
frequency = row[0]
dB = row[1]
作者:
这应该能奏效。快乐编码。您能给我们一个csv示例,让我们测试您的代码吗?有没有不使用熊猫数据帧的原因。skiprows只是其中的一个参数。我对熊猫一点也不熟悉,所以我最初没有使用它
frequency.append(row[0])
dB.append(row[1])