2016-09-26 22 views
1

每個小區單一numpy的陣列
plot1D,plot2D和PLOT3D格式取陣列1,2的下方的功能,和3列,分別遍歷numpy的陣列,情節所有陣列到單個數字(matplotlib)

import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 


def plot1D(data): 
    x=np.arange(len(data)) 
    plot2D(np.hstack((np.transpose(x), data))) 

def plot2D(data): 
    # type: (object) -> object 
    #if 2d, make a scatter 
    plt.plot(data[:,0], data[:,1], *args, **kwargs) 

def plot3D(data): 
    #if 3d, make a 3d scatter 
    fig = plt.figure() 
    ax = fig.add_subplot(111, projection='3d') 
    ax.plot(data[:,0], data[:,1], data[:,2], *args, **kwargs) 

我想的能力,輸入1,2,或三維陣列的列表,並繪製列表中的所有陣列在一個數字

我已經添加了循環的元素,但我不確定如何保持身材,並添加額外的陰謀......

def plot1D_list(data): 
    for i in range(0, len(data)): 
     x=np.arange(len(data[i])) 
     plot2D(np.hstack((np.transpose(x), data[i]))) 

def plot2D_list(data): 
    # type: (object) -> object 
    #if 2d, make a scatter 
    for i in range(0, len(data)): 
     plt.plot(data[i][:,0], data[i][:,1], *args, **kwargs) 

def plot3D_list(data): 
    #if 3d, make a 3d scatter 
    for i in range(0, len(data)): 
     fig = plt.figure() 
     ax = fig.add_subplot(111, projection='3d') 
     ax.plot(data[i][:,0], data[i][:,1], data[i][:,2], *args, **kwargs) 

回答

1

要繪製多個數據集,在同一座標,你可以做這樣的事情:

def plot2D_list(data,*args,**kwargs): 
    # type: (object) -> object 
    #if 2d, make a scatter 
    n = len(data) 
    fig,ax = plt.subplots() #create figure and axes 
    for i in range(n): 
     #now plot data set i 
     ax.plot(data[i][:,0], data[i][:,1], *args, **kwargs) 

你等功能都以同樣的方式被推廣。下面是使用上述官能團與5臺隨機產生的X-Y座標中的一個例子,每個具有長度爲100(每一個5個數據集的顯示爲不同的顏色):

import numpy as np 

X = np.random.randn(5,100,2) 
plot2D_list(X,'o') 
plt.show() 

enter image description here

+0

謝謝!也許我的原始問題應該更加清晰:我希望將所有數據可視化都疊加到單個圖中的單個圖上。你的解決方案給出了多個plote(每個項目一個),所有圖表出現在同一個圖上 – user80112

+0

啊......你的意思是在同一個軸上繪圖不是一樣的圖 –

+0

是的!對不起..你能幫忙嗎?它似乎只是在你提供的答案上的一個非常小的變化,但我仍然收到錯誤仍然.. – user80112