我更喜欢使用Matplotlib的面向对象的API,直接在数字和轴上操作,而不是使用matplotlib.pyplot
命令。
但是我经常发现通过pyplot
界面找到有关如何做某事的文档更容易。在这些情况下,根据图和轴方法找出相关的pyplot
命令正在做什么非常有用,因为它可以帮助我处理我在寻找文档时遇到的任何特定的角落情况。
例如,如果plt.xlabel()
是pyplot的有状态接口中的“当前”轴,则ax.set_xlabel()
等效于ax
。但我在xlabel()
文档中找不到任何提及Axes.set_xlabel()
的内容。在这种情况下,在Axes文档中单独查找并不难,但映射会非常好。
是否有任何信息来源可以告诉我每个特定的pyplot
命令在面向对象的界面方面做了什么?
答案 0 :(得分:5)
使用来源,卢克!许多pyplot commans只是围绕Axes
或Figure
方法的非常薄的包装器。我通常使用IPython。
In [1]: import matplotlib.pyplot as plt
In [2]: plt.xlabel??
Signature: plt.xlabel(s, *args, **kwargs)
Source:
def xlabel(s, *args, **kwargs):
"""
Set the *x* axis label of the current axis.
Default override is::
override = {
'fontsize' : 'small',
'verticalalignment' : 'top',
'horizontalalignment' : 'center'
}
.. seealso::
:func:`~matplotlib.pyplot.text`
For information on how override and the optional args work
"""
return gca().set_xlabel(s, *args, **kwargs)
File: ~\appdata\local\programs\python\python36-32\lib\site-packages\matplotlib\pyplot.py
答案 1 :(得分:4)
我想说在潜在的OO API命令方面有四类pyplot
命令。
直接等价物:所有绘图函数只在matplotlib.axes.Axes
类中具有等价物,例如plt.plot
> ax.plot
。所有辅助函数在matplotlib.figure.Figure
类中具有等价物,例如plt.colorbar
> fig.colorbar
,plt.subplots_adjust
> fig.subplots_adjust
绘图属性在轴类中有一个getter和setter,例如plt.title
> ax.set_title
某些pyplot命令没有任何等效,例如: plt.subplots
或plt.show
某些命令仅在pyplot命名空间中可用,并且需要从相应的子模块导入以进行OO接口,例如: plt.Normalize
> import matplotlib.colors; matplotlib.colors.Normalize
。
通常搜索功能或命令会带来两种变化。也可以明确地查看figure或axes文档以查找命令。最后,source of matplotlib可用,可以查看为给定的pyplot命令调用API函数的pyplot code。