2012-02-27 89 views
3

我已經編寫了一個腳本來計算維度中的大型CSV文件:27000行x 22列。 如何在CSV文件中讀取該文件,以便在matplotlib中像散列圖一樣使用它?Python:讀取CSV文件並繪製散點圖

axis range in scatter graphs

生成的散點圖的概念的理解。嘗試解析csv文件,例如:

data=csv.reader(open('some_file.csv, 'rb'), delimiter='|', quotechar='"') 

但沒有成功。

+6

什麼 - 特別是 - 「但沒有成功」是什麼意思?你能提供錯誤信息或其他錯誤信息嗎?我們無法猜測。 – 2012-02-27 22:46:39

+1

我們確實需要更多的信息,但是您的代碼中還有一個語法錯誤,如下所示:''somefile.csv'需要一個結束單引號。那只是一個錯字嗎? – Mike 2012-02-27 22:55:45

+2

@Mike:如果沒有**實際的**錯誤信息,那很可能是問題所在。要麼。問題可能是數據只是讀者,而不是實際需要的數據。 – 2012-02-27 23:37:32

回答

9

這裏是一個快速的解決方案

def getColumn(filename, column): 
    results = csv.reader(open(filename), delimiter="\t") 
    return [result[column] for result in results] 

,然後你可以使用它像這樣

time = getColumn("filename",0) 
volt = getColumn("filaname",1) 

plt.figure("Time/Volt") 
plt.xlabel("Time(ms)") 
plt.ylabel("Volt(mV)") 
plt.plot(time,volt) 
1

是正確的分隔符?您是否閱讀過文檔? http://docs.python.org/library/csv.html

data是一個文件類對象。您必須迭代它才能訪問數據。每一行都是馬克斯在他的例子中指出的一個列表。

1

作爲一般的選擇,你可能會感興趣的大熊貓Python包韋斯麥金尼:http://pandas.pydata.org/

它完全改變了我的生活與Python數據分析。它爲Python提供了一個類似於R的data.frame的數據結構,但功能更強大。它建立在numpy之上。

它會非常輕鬆地讀取csv文件,將數據加載到可輕鬆切片和操作的DataFrame(numpy數組子類)中。