我只是想設置與pyplot軸界限,但似乎沒有正確檢測軸功能的參數,因爲它會返回該錯誤: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)
我只是想設置與pyplot軸界限,但似乎沒有正確檢測軸功能的參數,因爲它會返回該錯誤: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)
如果我使用x = numpy.random.randn(10,2)
那麼這段代碼的其餘部分作品沒有問題,使用NumPy的1.4,matplotlib 1.1.1和Python 2.7.3 。 pyplot
API中的axis
函數接受包含4個值的list
作爲第一個位置參數,所以此處的用法是正確的。您遇到的錯誤不是來自這段代碼。
如果你提供你想要繪製的數據和代碼,並追蹤消息的全部細節的全部細節,也許我們可以幫助你。
# 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
會導致你看到的錯誤。
其他的事情可能會導致它過,但是這是在給定的問題提供有限的信息我最好的猜測。
好的,我認爲我的pyplot庫可能有問題。我只是複製並粘貼了您發佈的隨機x代碼,並得到了相同的錯誤。我正在使用包含在python 2.7中的winpython中的發行版。 – user3236128
什麼是'x'?這將幫助我們重現你正在做的事情。 – chrisaycock
發佈*全部*追蹤和所有相關的代碼。 – Blender
我剛剛複製了發佈用於測試的代碼EMS,但我仍然遇到同樣的錯誤,但它爲他工作。我的pyplot安裝會出現問題嗎? – user3236128