いくつかのプロットを作成するメソッドを持つクラスがあります。1 つの図にさまざまなプロットを表示しようとしています。Figure のプロパティ (タイトル、凡例など) は、常に最後のプロットによって上書きされます。return
メソッドにある場合、それがない場合とは動作が異なると予想していましたが、そうではないようです。
との違いは何なのかを考えてみたいと思いますreturn
。私の質問を説明するコードは次のとおりです。
import matplotlib.pyplot as plt
import numpy as np
class myClass1(object):
def __init__(self):
self.x = np.random.random(100)
self.y = np.random.random(100)
def plotNReturn1(self):
plt.plot(self.x,self.y,'-*',label='randNxy')
plt.title('Plot No Return1')
plt.legend(numpoints = 1)
def plotNReturn2(self):
plt.plot(self.y,self.x,'-x',label='randNzw')
plt.title('Plot No Return2')
plt.legend(numpoints = 2)
def plotWReturn1(self):
fig = plt.plot(self.x,self.y,'-*',label='randWxy')
fig = plt.title('Plot With Return1')
fig = plt.legend(numpoints = 1)
return fig
def plotWReturn2(self):
fig = plt.plot(self.y,self.x,'-x',label='randWzw')
fig = plt.title('Plot With Return2')
plt.legend(numpoints = 3)
return fig
if __name__=='__main__':
f = myClass1()
p = plt.figure()
p1 = p.add_subplot(122)
p1 = f.plotWReturn1()
p1 = f.plotWReturn2()
print 'method with return: %s: ' % type(p1)
p2 = p.add_subplot(121)
p2 = f.plotNReturn1()
p2 = f.plotNReturn2()
print 'method without return: %s: ' % type(p2)
plt.show()
私が気づいた唯一の違いは出力のタイプですが、実際にはそれが何を意味するのかわかりません。
method with return: <class 'matplotlib.text.Text'>:
method without return: <type 'NoneType'>:
それは「Pythonic」の練習だけですか、それともスタイルを使用するのに実用的なものはありますか?