Matplotlib:make_image()莫名其妙的错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matplotlib:make_image()莫名其妙的错误相关的知识,希望对你有一定的参考价值。
在以下简单的matplotlib代码中:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0,5,0.1)
y = np.sin(1.33*x)
x1, y1 = np.meshgrid(x, y)
data = np.sin(x1) + y1**4
im = plt.imshow(data)
x = im.make_image()
...
我在最后一个语句中得到以下莫名其妙的错误:“TypeError:make_image()至少需要2个参数(给定1个)”如果我使用参数,我会得到一个更加荒谬的错误,例如:
x = im.make_image(magnification=2.0)
“TypeError:make_image()至少需要2个参数(给定2个)”。这是我遇到的最荒谬的编程错误之一!
答案
参见例如this question为什么喜欢
TypeError: method() takes at least n arguments (n given)
并不像第一眼看上去那么荒谬。
在这里你没有任何位置参数调用make_image
。然而,signature是
make_image(renderer, magnification=1.0, unsampled=False)
所以你错过了renderer
的论点。
在python 3.6中,错误更加清晰。它会说类似的东西
TypeError: make_image() missing 1 required positional argument: 'renderer'
这样可以更容易地找出问题所在。
除了问题仍然不清楚所期望的结果是什么,所以这就是人们在这一点上可以说的。
另一答案
我找到了缺少的成分:它是一个渲染器。例如。
r = plt.gcf().canvas.get_renderer()
x = im.make_image(r, magnification=2.0)
这有效。然而,与此同时,我在评论员的帮助下发现,这个make_image
函数没有任何实际用途,并且没有太多支持。必须通过其他方式获得图像处理,例如轴。
所以我认为问题已经解决了。谢谢。
以上是关于Matplotlib:make_image()莫名其妙的错误的主要内容,如果未能解决你的问题,请参考以下文章