pyhon绘图类层次结构如何定义轴参数

时间:2018-08-03 10:20:28

标签: python matplotlib

我正在开发一个班级,目的是生产地块, 基类是可调用的,尤其是其调用方法如下:

def __call__ (self,nrows,ncols,*args,**kwargs):

       self.style(*args)

       self.setparams(kwargs)

       if nrows == ncols ==1:
            self.fig, self.axs = plt.subplots(nrows,ncols,figsize=(9.5,4.5))
       else:
            self.fig, self.axs = plt.subplots(nrows,ncols,figsize=(12,6))

       self.fig,self.axs = self.set(nrows,ncols,self.fig,self.axs)
       return  self.fig,self.axs

现在..方法集定义了一些axs参数,如下所示:

def set(self,nrows,ncols, fig,  axs , **kwargs ):
    self.config = kwargs
    self.axs.grid(linestyle='--', dashes=(5,7))
    self.axs.set_title('', color='#555555')

此方法的目的是定义无法使用rcParam定义的参数(例如标题颜色,网格的dashes =()以及其他很多参数...) 现在我还不知道如何从派生类调用此方法以覆盖基类设置的参数... 我在想像使用字典(self.config = kwargs)来设置参数的解决方案,而我已经尝试过这种可怕的事情:

 if axs.grid not in self.config.keys():
    self.axs.grid(linestyle='--', dashes=(5,7))
 else:
   self.axs.grid(**self.config['axs.grid'])

即使它很可怕也应该起作用..但是现在的问题是如何定义

self.config['axs.grid']

在基类中,我已经尝试过此方法..但当然不起作用

self.config['axs.grid'] = [linestyle=':', dashes=(0, (1, 1))]
super().set(self.config)

有一种正确传递(linestyle=':', dashes=(0, (1, 1)))的方法吗?

0 个答案:

没有答案