2013-06-13 118 views
1

我有一個包含20列的csv文件。現在我可以使用這個代碼來繪製第一列作爲x軸,其餘部分作爲y軸。matplotlib陰謀csv文件

import numpy as np 
import matplotlib.pyplot as plt 
data = np.genfromtxt('cs.csv',delimiter=',', dtype = float) 

a = [row[0] for row in data] 
b = [row[1] for row in data] 
c = [row[2] for row in data] 

fig = plt.figure() 
ax = fig.add_subplot(111, axisbg = 'w') 
ax.plot(a,b,'g',lw=1.3) 
ax.plot(a,c,'r',lw=1.3) 
plt.show() 

的問題是在這裏我用

a = [row[0] for row in data]

此代碼對所有列逐個定義所有列。我希望實際上有一些方法,以便它可以繪製所有19列,將第一列作爲x軸常量並將它們繪製在單個窗口中。請任何幫助。

回答

2

如何:

[plt.plot(data[0],data[x]) for x in range(1,len(data[:,0]))] 
+0

嗨,你能請告訴什麼是一個範圍內的看臺(1,LEN(A [:0]))] – user2095624

+0

嗨,錯字我的一部分。它應該是'數據'。現在更新。 – atomh33ls

3

你可以嘗試使用pandas,它使用matplotlib用於繪圖。舉例來說,如果你有這樣的CSV:

a,b,c 
20,2,5 
40,6,8 
60,4,9 

您可以繪製列b & c這樣的:

import pandas as pd 

df = pd.DataFrame.from_csv('test.csv', parse_dates=False) 
df.b.plot(color='g',lw=1.3) 
df.c.plot(color='r',lw=1.3) 

第一列,用作指數& x軸默認。 有關詳細信息,請參閱plotting documentation

+0

我有熊貓的問題。 AttributeError:'模塊'對象沒有'DataFrame'屬性。是由於安裝或不同的版本。請任何想法。 – user2095624

+0

據我所知,DataFrame一直是大熊貓的一部分。你用pip安裝了嗎? –

0

正如馬蒂·約翰說,大熊貓是前進的方向,你可以做你問更容易。假設您的CSV是一個類似的形式向一個他貼了,你可以繪製所有列(除了第一個)針對這樣的第一列:

import pandas as pd 
df = pd.read_csv('name_of_file.csv', index_col=0) 
df.plot(x=df.index, y=df.columns) 

使用CSV是馬蒂·約翰給,即

a,b,c 
20,2,5 
40,6,8 
60,4,9 

這是從代碼輸出上述