pycharm matplotlib.pyplot.figure().add_subplot()繪製三維圖時報錯:ValueError: Unknown projection 3d(bug)

報錯描述

出於安全考慮,CSDN不讓文章標題使用英文單引號

ValueError: Unknown projection '3d'
# -*- coding: utf-8 -*-
"""
@File    : 1.py
@Time    : 2020/5/25 21:33
@Author  : Dontla
@Email   : [email protected]
@Software: PyCharm
"""
# 第一種創建3D圖形的方法:創建子圖

# 用創建子圖的方法畫出來感覺要比下面的方法小一點??

from matplotlib import pyplot as plt  # 用來繪製圖形

import numpy as np  # 用來處理數據

fig = plt.figure()

print('fig的類型:', type(fig), '\n')

print('fig:\n', fig, '\n')

ax = fig.add_subplot(111, projection='3d')

print('ax的類型:', type(ax), '\n')

print('ax:\n', ax, '\n')

X = np.arange(-10, 10, 0.25)

Y = np.arange(-10, 10, 0.25)

X, Y = np.meshgrid(X, Y)

Z = 3 * X ** 2 + 2 * Y ** 2 + 5

ax.plot_surface(X, Y, Z, cmap='rainbow')

plt.show()

在這裏插入圖片描述

D:\20200228_play_with_pytorch\python\python.exe C:/Users/SIQI/Desktop/繪製神經網絡輸出函數圖像/1.py
Traceback (most recent call last):
  File "D:\20200228_play_with_pytorch\python\lib\site-packages\matplotlib\projections\__init__.py", line 58, in get_projection_class
    return projection_registry.get_projection_class(projection)
  File "D:\20200228_play_with_pytorch\python\lib\site-packages\matplotlib\projections\__init__.py", line 25, in get_projection_class
    return self._all_projection_types[name]
KeyError: '3d'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/SIQI/Desktop/繪製神經網絡輸出函數圖像/1.py", line 23, in <module>
    ax = fig.add_subplot(111, projection='3d')
  File "D:\20200228_play_with_pytorch\python\lib\site-packages\matplotlib\figure.py", line 1396, in add_subplot
    self._process_projection_requirements(*args, **kwargs)
  File "D:\20200228_play_with_pytorch\python\lib\site-packages\matplotlib\figure.py", line 1120, in _process_projection_requirements
    projection_class = projections.get_projection_class(projection)
  File "D:\20200228_play_with_pytorch\python\lib\site-packages\matplotlib\projections\__init__.py", line 60, in get_projection_class
    raise ValueError("Unknown projection %r" % projection)
ValueError: Unknown projection '3d'
fig的類型: <class 'matplotlib.figure.Figure'> 

fig:
 Figure(640x480) 


Process finished with exit code 1

解決辦法

在開頭加上這句代碼

from mpl_toolkits.mplot3d import Axes3D

然後就可以運行了
在這裏插入圖片描述
參考文章1:深入淺出python機器學習_如何用python畫三維圖? add_subplot() Axes3D() plot_surface() gca()

參考文章2:python畫圖報錯:Unknown projection ‘3d’

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