2017-05-25 63 views
0

爲什麼matplotlib的工作方式?例如,你爲什麼這樣做:爲什麼matplotlib不直接對對象進行操作?

x = plt.bar([1,2,3,4],[1,2,2,1]) 
plt.title('Title') 

相反的:

x = plt.bar([1,2,3,4],[1,2,2,1]) 
x.title('Title') 

好像地塊應該是有像 「稱號」, 「xlabel」 等

方法的對象

對於我來說,有一種函數甚至不會把它們作爲參數運行的對象,但我假設它有這樣一個很好的理由?

回答

1

Matplotlib實際上有一個面向對象的API。所以例子是

fig, ax = plt.subplots() 
ax.bar([1,2,3,4],[1,2,2,1]) 
ax.set_title('Title') 
ax.set_xlabel("X-label") 
fig.set_facecolor("pink") 

上工作的對象多半是matplotlib.Axes.axes,這裏所說的ax。它有繪圖方法,以及其他各種方法來調整圖形。

matplotlib API有很好的文檔記錄。您將在文檔中找到您需要進行面向對象編程的相應方法和返回類型。

然後你可以看看返回類型的ax.bar,這是一個matplotlib.container.BarContainer和着色像

bars = ax.bar([1,2,3,4],[1,2,2,1]) 
bars[1].set_color("crimson") 

Pyplot第二欄本身不是很Python的,因爲它已被設計成類似於MATLAB語言。但是,通常只是從API中調用相應的類方法。

相關問題