2017-06-29 27 views
0

我想在一條線圖上繪製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() 
+3

你能給我們一個樣本csv,可以讓我們測試你的代碼嗎? –

+1

任何不使用熊貓數據框的原因。 skiprows僅僅是一個參數。 –

+0

我對熊貓根本不熟悉,所以這就是爲什麼我最初沒有使用它 –

回答

1

你總是更新頻率和分貝列出,而不是附加給他們

嘗試更換:

frequency = row[0] 
dB = row[1] 

由:

frequency.append(row[0]) 
dB.append(row[1]) 

應該做的伎倆。快樂編碼。

+0

這工作完美!非常感謝你,輕鬆解決! –

0

嘗試使用熊貓包,它可以簡化您的代碼:在每個循環

import pandas as pd 
df = read_csv("path to file", skiprows = 18) #skip headers 
df.plot(x = , y =) #Plots graph using matplotlib 
0

你給frequencydB一個新的值(浮點) 。所以,當你試圖繪製圖表時,它們只是單個值。

你已經將它們定義爲列表,你只需要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]) 
相關問題