Python の既存のオブジェクトに、辞書などのコンテナーを追加することをどのように推奨しますか? 私はmatplotlibのオブジェクトをいじっていLine2D
ましたが、次のアプローチで辞書を追加できることがわかりました
import matplotlib as mpl
line2D_obj = mpl.lines.Line2D([0,1], [0,0])
line2D_obj.labels = dict( text = '$\delta$', ndx = 30, leader_length = 15, leader_angle = 120)
インスタンス化されたとき、 にはline2D_obj
メソッドがありませんでした。オブジェクトにデータを保存したかったので.labels
作成しました。これは良いアプローチですか?そうでない場合、他に何を提案しますか?.labels
Line2D
Line2D
重要な場合、これを調査している理由は、matplotlib でオブジェクトにラベルを付けるカスタム関数を作成しようとしているからです。以前は、ラベリング関数にネストされたリストの束を渡すだけだと思っていました。
labels = [[[axis1_curve_1_label], [axis1_curve2_label]], [[axis2_curve1_label]]]
しかし、これは面倒で従うのが難しいです。もっと良い方法があると今は思います。私のプロット コードは、データ軸を と呼ばれる軸のリストとして出力するdata_ax
ため、Line2D
オブジェクトは と呼ばれるリストに適切に編成されlines
ます。たとえば、データ軸 2 の曲線 3 にラベルを付ける場合は、次のように入力するだけです。
data_ax[2].lines[3].labels = dict( text = '$\delta$', ndx = 30, leader_length = 15, leader_angle = 120)
どの曲線にラベルを付けているかは非常に明確です。次に、オブジェクトをラベル付け関数に渡すだけでdata_ax
、各曲線のラベル情報を取得できます。