通常不會報出這種錯誤,但還是有奇人能搞出來。這種錯誤通過斷點調試就可以發現錯誤
在利用Python進行繪圖時可能報出這種錯誤。
Traceback (most recent call last):
File "E:\Anaconda3\envs\python27\Lib\lib-tk\Tkinter.py", line 1542, in __call__
return self.func(*args)
File "E:\Anaconda3\envs\python27\lib\site-packages\matplotlib\backends\_backend_tk.py", line 227, in resize
self.draw()
File "E:\Anaconda3\envs\python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 12, in draw
super(FigureCanvasTkAgg, self).draw()
File "E:\Anaconda3\envs\python27\lib\site-packages\matplotlib\backends\backend_agg.py", line 437, in draw
self.figure.draw(self.renderer)
File "E:\Anaconda3\envs\python27\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "E:\Anaconda3\envs\python27\lib\site-packages\matplotlib\figure.py", line 1493, in draw
renderer, self, artists, self.suppressComposite)
File "E:\Anaconda3\envs\python27\lib\site-packages\matplotlib\image.py", line 141, in _draw_list_compositing_images
a.draw(renderer)
File "E:\Anaconda3\envs\python27\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 281, in draw
reverse=True)):
File "E:\Anaconda3\envs\python27\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 280, in <lambda>
key=lambda col: col.do_3d_projection(renderer),
File "E:\Anaconda3\envs\python27\lib\site-packages\mpl_toolkits\mplot3d\art3d.py", line 459, in do_3d_projection
fcs = mcolors.to_rgba_array(fcs, self._alpha)
File "E:\Anaconda3\envs\python27\lib\site-packages\matplotlib\colors.py", line 270, in to_rgba_array
result[i] = to_rgba(cc, alpha)
File "E:\Anaconda3\envs\python27\lib\site-packages\matplotlib\colors.py", line 171, in to_rgba
rgba = _to_rgba_no_colorcycle(c, alpha)
File "E:\Anaconda3\envs\python27\lib\site-packages\matplotlib\colors.py", line 222, in _to_rgba_no_colorcycle
raise ValueError("Invalid RGBA argument: {!r}".format(orig_c))
ValueError: Invalid RGBA argument: (0.0, 0.0, 1.0, array([[0.61773639]]))
有Python代碼如下:
fig = plt.figure() # 使用Axes3D()創建3D圖形對象
ax = Axes3D(fig)
ax.scatter(datatest_train[:, 0], datatest_train[:, 1], y_t, c='r')
正常來看,這段代碼是正確的。但卻報出如上錯誤。
這時就需要利用斷點進行調試。
正常情況下,函數scatter中的參數都應該是數值型,但此時可以發現函數scatter中的參數 y_t 中爲‘str’型,錯誤就出現在這裏。
需要將參數轉化爲數值型纔可以。