我在Matplotlib中编写了一个函数来保存绘图。当我想通过调用plt.savefig(fname=path, dpi=dpi, format=ext, bbox_inches="tight")
来使用它时,我得到了以下错误。在
File "/home/jruota/.local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 697, in savefig
res = fig.savefig(*args, **kwargs)
File "/home/jruota/.local/lib/python2.7/site-packages/matplotlib/figure.py", line 1572, in savefig
self.canvas.print_figure(*args, **kwargs)
TypeError: print_figure() takes at least 2 arguments (5 given)
将调用更改为plt.savefig(path, dpi=dpi, format=ext, bbox_inches="tight")
时不会发生此错误。我猜这个错误与*
和**
参数打包和解包有关,但我不确定具体是怎么回事。任何解释都将不胜感激。在
首先,很明显如果
工作正常,你可以简单地使用它。在
错误来自
fname
不是命名参数。The documentation对于不熟悉python中的调用签名的人来说,可能有点困惑。在签名是
^{pr2}$matplotlib.pyplot.savefig(*args, **kwargs)
,其中需要设置参数fname
,并且可以指定更多的关键字参数。当然,参数不能是关键字参数。所以fname
是参数,而fname
是一个关键字参数,因此找不到指定文件名的参数。在如果需要,可以使用自定义函数进行测试:
那么
同时
在后一种情况下,
args
为空。在相关问题 更多 >
编程相关推荐