我只是试图用pyplot设置轴限制,但似乎没有正确检测轴功能的参数,因为它返回了这个错误:
TypeError: 'list' object is not callable.
它与轴功能有关,但我看不出问题出在哪里。我的代码中提出问题的部分如下:
plt.figure(1)
plt.plot(x[:,0],x[:,1])
ax=[0.0,10.0,0.0,10.0]
plt.axis(ax)
答案 0 :(得分:0)
如果我使用x = numpy.random.randn(10,2)
,则使用NumPy 1.4,matplotlib 1.1.1和Python 2.7.3,此代码的其余部分无问题。 axis
API中的pyplot
函数接受list
个4个值作为第一个位置参数,因此此处的用法是正确的。您遇到的错误不是来自这段代码。
如果您提供了您要绘制的数据的完整详细信息以及代码和回溯消息的完整详细信息,也许我们可以为您提供帮助。
# Works fine assuming packages are installed...
import numpy as np
import matplotlib.pyplot as plt
x = np.random.randn(10,2)
plt.figure(1)
plt.plot(x[:,0], x[:,1])
ax = [0.0, 10.0, 0.0, 10.0]
plt.axis(ax)
plt.show()
鉴于您发布的错误消息,一种可能性是您已经采用了list
对象(代码中称为ax
的对象)的实例,该对象旨在用作边界一个轴,并将其与API函数axis
混淆。在这种情况下,请在代码中查找将函数调用语法放在变量名ax
之后的位置,例如:
ax(x1, x2, y1, y2)
而不是
plt.axis(x1, x2, y1, y2)
在第一种情况下,尝试用一些参数“调用”ax
将不会成功,因为Python list
类没有实现__call__
协议,所以后缀函数在作为()
实例的变量的变量名称之后调用符号list
(可能带参数)将导致您看到的错误。
其他事情也可能导致它,但鉴于问题中可用的信息有限,这是我最好的猜测。