2017-05-25 34 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中调用相应的类方法。

相关问题