2013-02-28 50 views
2

我有一個非常雄心勃勃的項目(對於我的新手級別)使用numpy數組,我加載一系列數據,並根據我的需要製作不同的圖 - 我上傳了一個slim我的數據文件版本爲input_data,並且想要根據以下條件進行繪圖:F(我想在循環前選擇所需的F),並且每個系列將具有來自E列的數據(例如A12一個數據系列,另一個數據系列A23在圖中等),並在X軸上,我想使用D中的對應值。從numpy數組中繪製多個數據系列

因此總結一列FI選擇值希望有4個不同的數據系列(作爲變量的數量列E),並且數據應該是關於列D(這是日期)的值的參考(x軸)

我在第一步中偶然發現了(雖然花費了太多時間),我想將所有帶F列標識符的數據繪製爲一個繪圖。 這裏是我到現在爲止:

import os 
import numpy as np 
N = 8 #different values on column F 
M = 4 #different values on column E 
dataset = open('array_data.txt').readlines()[1:] 
data = np.genfromtxt(dataset) 
my_array = data 
day = len(my_array)/M/N # number of measurement sets - variation on column D 
for i in range(0, len(my_array), N): 
    plt.xlim(0,) 
    plt.ylim(-1, 2) 
    plt.plot(my_array[i, 0], my_array[i, 2], 'o') 
    plt.hold(True) 
plt.show() 

這無助....我還有很長的路要走..

+0

'genfromtxt'需要*文件名*或*文件對象*,而不是字符串列表。試試'data = np.genfromtxt('array_data.txt',skip_header = 1)'。並嘗試一次調試一個步驟:確保您有良好的數據,然後再嘗試繪製它。 – 2013-02-28 21:05:11

+0

@WarrenWeckesser感謝您的提示;有助於瞭解跳過標題;上一行結尾處的[1:]處理標題問題 - 我可以加載數據,但是當我嘗試獲得單點作爲圖 – Dimitris 2013-02-28 21:21:39

+0

您是否聽說過[pandas](http ://pandas.pydata.org/)?這聽起來像你可能想要使用的東西。您可以將數據加載到數據框中,然後從那裏繪製出來。如果您提供我可以向您展示的數據樣本。 – Raufio 2013-02-28 21:34:33

回答

2

隨着熊貓,你可以這樣做:

import pandas as pd 
dataset = pd.read_table("toplot.txt", sep="\t") 
#make D index (automatically puts it on the x axis) 
dataset.set_index("D", inplace=True) 
#plotting R vs. D 
dataset.R.plot() 
#plotting F vs. D 
dataset.F.plot() 

dataset是一個DataFrame對象和DataFrame.plot只是圍繞matplotlib函數來繪製系列的包裝。

我不清楚你想如何繪製它,但它聽起來像你需要選擇一列的某些值。這將是:

# get where F == 1000 
maskF = dataset.F == 1000 
# get the values where F == 1000 
rows = dataset[maskF] 
# get the values where A12 is in column E 
rows = rows[rows.E == "A12"] 
#remove the we don't want to see 
del rows["E"] 
del rows["F"] 
#Plot the result 
rows.plot(xlim=(0,None), ylim=(-1,2)) 
+0

感謝您的示例代碼 - 我會處理它,讓我們知道如果我能從中獲得任何東西(已經有2個例外 - se_index給我重複的錯誤,而ylim沒有定義..)無論如何 - 我會發布更新。謝謝 – Dimitris 2013-02-28 22:58:21

+0

set_index只是爲了方便。你可以把它拿出來做'plot(x =「D」)'。 – Raufio 2013-02-28 23:11:36

+0

似乎正在得到一些有意義的情節!我會努力工作,並回到更多關於微調的問題 - 謝謝! – Dimitris 2013-03-01 00:06:51