Почему ошибка в matplotlib 3D возвращается как cm не определено

#python

#python

Вопрос:

Мой код в основном таков: я пытаюсь построить и визуализировать линейную регрессию между mpg, смещением и мощностью в 3D-графике с использованием matplotlib

 fig = plt.figure(figsize=(25,15))

ax = fig.gca(projection='3d')

ax.plot_trisurf(auto['mpg'],auto['displacement'],auto['horsepower'], cmap = cm.jet)
 

ошибка возвращается как:

 NameError                                 Traceback (most recent call last)
<ipython-input-208-0a4e9c165dee> in <module>
      1 fig = plt.figure(figsize=(25,15))
      2 ax = fig.gca(projection='3d')
----> 3 ax.plot_trisurf(auto['mpg'],auto['displacement'],auto['horsepower'], cmap = cm.jet)

NameError: name 'cm' is not defined
 

Комментарии:

1. Вы импортировали cm ? from matplotlib import cm

Ответ №1:

Если вы измените значение cm.jet на 'jet' , оно, вероятно, будет работать и использовать «струйную» цветовую карту matplotlib (вы можете увидеть все разные цветовые карты здесь)

То, что вы пытаетесь сделать, это использовать библиотеку matplotlib.cm однако, чтобы использовать это, вам сначала нужно импортировать библиотеку через import matplotlib.cm as cm

Таким образом, вы используете переменную _jet_data, определенную в cm, однако это довольно громоздко. Я всегда просто использую строковую ссылку на цветовую карту, потому что тогда нет необходимости импортировать cm-файл, поэтому я рекомендую вам сделать то же самое!