【Python】繪圖時報錯ValueError: Invalid RGBA argument: (0.0, 0.5, 0.0, array([[0.42116073]]))

通常不會報出這種錯誤,但還是有奇人能搞出來。這種錯誤通過斷點調試就可以發現錯誤

在利用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’型,錯誤就出現在這裏。

在這裏插入圖片描述

需要將參數轉化爲數值型纔可以。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章