科学データ用のカスタムプロット図面のモジュールを作成したいのですが、メソッドに(*arg2,**kwarg2)
型の引数を渡す方法がわかりません。ここで(* args、** kwargs)タイプの属性をクラス内の関数に渡すには?
は、関連するコードです:
import numpy as np
import matplotlib.pyplot as plt
# class of figures for channel flow
# with one subfigure
class Homfig:
# *args: list of plot features for ax1.plot
# (xdata,ydata,str linetype,str label)
# **kwargs: list of axes features for ax1.set_$(STH)
# possible keys:
# title,xlabel,ylabel,xlim,ylim,xscale,yscale
def __init__(self,*args,**kwargs):
self.args = args
self.kwargs = kwargs
self.fig = plt.figure()
self.ax = self.fig.add_subplot(111)
for key, val in self.kwargs.iteritems():
getattr(self.ax,'set_'+key)(val)
def hdraw(self):
for arg in self.args:
self.ax.plot(*arg)
leg = self.ax.legend(loc=4)
問題はarg
が(*agr2,**kwarg2)
のようなタプルそのものであると私は self.ax.plot(*引数) を呼び出すとき、それは名前の変数を見ていないということです。 関数hdraw
は、initから入力された*args
の入力に作用し、プロットラインのデータはarg
に渡されます。 arg
は名前のない変数と名前付きの変数で構成されているとはどうでしょうか? self.ax.plot
は、私はいくつかのラインを持つようにしたいときは、もう一度呼び出すことができ
は、私は他のPythonスクリプトからのモジュールを呼び出す(1つのプロットに、などさまざまlabel
、linetype
、と。):
meanfig = hfig.Homfig((datax,datay),title='test plot')
meanfig.hdraw()
どのように私は、例えば、self.ax.plotにラベルや線種などの機能を追加することができます。
meanfig = hfig.Homfig((datax,datay,label="test_label",linetype ='o'),title='test plot')
[関数のすべての引数を別の関数に渡す](https://stackoverflow.com/questions/42499656/pass-all-arguments-of-a-function-to-another-function) –