matplotlib のプロットで表現できるオブジェクトがあります。今、私は次のようなことをしています:
from matplotlib import pyplot as plt
class MyObject(object):
def __init__(self, my_list):
self.my_list = my_list
def superplot(self, show=False, axe=None, *args, **kwargs):
ax = axe or plt.figure(figsize=(10,10)).add_subplot(1,1,1)
plot = ax.plot(self.my_list, *args, **kwargs)
if show:
plt.show()
else:
return plot
...しかし、もっと良い方法があるはずだと本当に言います。将来のユーザーが標準の matplotlib 関数を使用しているかのようにプロットを構成できるようにするための規則、または単にこれを行うためのより賢い方法はありますか?
編集:私がよく理解していることを確認するために
from matplotlib import pyplot as plt
class MyObject(object):
def __init__(self, my_list):
self.my_list = my_list
def superplot(self, axe=None, *args, **kwargs):
ax = axe or plt.figure(figsize=(10,10)).add_subplot(1,1,1)
myplot = ax.plot(self.my_list, *args, **kwargs)
return myplot
また、ユーザーが を設定できるたびに GUI をポップアップさせmatplotlib.interactive(True)
たい場合、および Figure を保存したい場合は、Axe
オブジェクトを渡してから を実行する必要がありますaxe.get_figure().savefig('anywhere.png')
。
EDIT2:まだ解決策に不快感を感じています:
- ユーザーがオブジェクトを渡さない場合
Axe
、彼が行うのは難しいかもしれません。引数savefig
を許可する方がよいのではないでしょうか?savefig
または、常にAxe
代わりに生成されたものを返す必要がありmyplot
ますか?