Python和科学计算认证群组  - 讨论区

标题:fig.savefig和plt.savefig有什么区别呢

2011年03月22日 星期二 16:30

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(12,10))

fig.savefig('3.png',format="png")

plt.savefig('3.png',format="png")

 

查:help(fig.savefig)

Help on method savefig in module matplotlib.figure:

savefig(self, *args, **kwargs) method of matplotlib.figure.Figure instance

查:help(plt.savefig)

Help on function savefig in module matplotlib.pyplot:

 

现在有点乱了,到底这个savefig在哪个模块中,fig.savefig和plt.savefig有什么区别呢

2011年03月22日 星期二 16:32

还有另外一些,现在一时间记不清了,都感觉是有重复的,一直学习matplotlib,一直没有找到学通顺的感觉

2011年03月25日 星期五 13:43

pyplot是一个模块,savefig是其中的一个函数。为了用法和MATLAB保持一致,matplotlib通过pyplot模块提供了一套和MATLAB类似的绘图函数集。而matplotlib内部则是面向对象的。

在matplotlib中用Figure对象表示图表,plt.figure将创建这样一个对象,而Figure对象的savefig方法将图表保存成图片。pyplot模块内部保存当前图表对象,当调用plt.savefig时,它会找到当前图表对象,然后调用其favefig方法。

在IPython中输入plt.savefig??,可以看到pyplot.savefig的源代码:

def savefig(*args, **kwargs):

    fig = gcf()

    return fig.savefig(*args, **kwargs)

可以看出它先通过gcf()找到当前图表,然后调用图表对象的savefig方法。因此pyplot基本上就是对面向对象的库做了一个面向函数的包装。

《用Python做科学计算》中详细介绍了这些内容。相信你阅读相关章节之后,能提高你对matplotlib整体上的理解。

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号