2017-04-25 58 views
1

我想創建一個類,它會自動正確的行爲時plt.plot被調用就可以了:Matplotlib:創建一個可以繪製一類

import matplotlib.pyplot as plt 

class MyDataClass: 
    self.data = [...] 
    self.time = [...] 
    # stuff 

instance = MyDataClass(...) 
plt.plot(instance) # plots as if I called: plt.plot(self.time, self.data) 

我知道,熊貓這樣做,但我不知識。

回答

2

我想創建一個plot方法

class MyDataClass: 
    def __init__(self): 
     self.data = [...] 
     self.time = [...] 
     # stuff 

    def plot(self): 
     plt.plot(self.time, self.data); 

instance = MyDataClass(...) 
instance.plot() 

Minimal and Complete Verifiable Example (MCVE)

class MyDataClass: 
    def __init__(self): 
     self.data = [1, 2, 3] 
     self.time = [3, 2, 1] 
     # stuff 

    def plot(self): 
     plt.plot(self.time, self.data); 

instance = MyDataClass() 
instance.plot() 

enter image description here

0

要回答準確問題如何一個類的實例提供給plt.plot()功能,這裏將是一個要走的路:

import matplotlib.pyplot as plt 

class MyDataClass(): 
    data = [1,2,4] 
    time = [1,2,3] 

    def __call__(self): 
     return (self.time,self.data) 

instance = MyDataClass() 

plt.plot(*instance()) 

plt.show() 

如圖所示,您不能直接調用plt.plot(instance),因爲plot期望其參數爲列表或數組。相反,您需要使用對該類的調用的返回值。

相關問題