matplotlib.cm.coolwarm(在 Google 的 Colaboratory TensorFlow 教程中使用)是 Eclipse 中的未定义变量

matplotlib.cm.coolwarm (used in Colaboratory TensorFlow tutorial from Google) is an undefined variable in Eclipse

我试图获取我在 Google Colaboratory tensorflow 教程(在 Jupyter 工作簿中)中找到的代码,并在我自己的计算机上的 Eclipse 环境中实现它: (https://colab.research.google.com/notebooks/mlcc/first_steps_with_tensor_flow.ipynb?utm_source=mlcc&utm_campaign=colab-external&utm_medium=referral&utm_content=firststeps-colab&hl=en#scrollTo=wgSMeD5UU81N) 此代码在 Colaboratory jupyter 工作簿上执行良好。 然而,Eclipse 让我从 matlablib 导入中得到一个 "undefined variable" 错误。

我的系统:
Mac OS: 10.13.6
日食:019-03 (4.11.0)
Anaconda 安装包括:python3.7.3、matplotlib 3.1.0。 (此外,在安装 Anaconda 软件包之前,对 Anaconda 下载的 shasum 检查是正确的)
我还在每个谷歌网站上安装了 tensorflow:tensorflow 1.14.0

使用 Eclipse 和 python3.7
此行不会产生错误:

from matplotlib import cm"   #(<--no error generated here)

然而,当我稍后使用 "cm.coolwarm" 时,Eclipse 给我一个与 "coolwarm" 相关的 "undefined variable from import" 错误:

colors = [cm.coolwarm(x) for x in np.linspace(-1, 1, periods)] 

当我查看我下载的 Matplotlib 包中的 cm.py 文件时,实际上没有 "coolwarm" variable/method/function 定义。转到 Matplotlib 网站,版本 3.1.1(最新版本)或较旧的稳定版 3.0.1 似乎也没有定义任何 coolwarm。

我的结论是 Google Colabaratory jupyter 工作簿必须使用非常旧的 matplotlib 版本并且 cm.coolwarm 已弃用。但我是一个相对的新手,只是想我会检查一下是否有我遗漏的东西......

感谢您的想法。

在任何较新版本的 matplotlib 中都没有弃用 coolwarm 颜色图。据我所知,未来也没有这样做的计划。

以下内容适用于任何版本的 matplotlib

from matplotlib import cm
print(cm.coolwarm(0.5))

您在源代码中没有找到 cm.coolwarm 的原因是这些名称是即时生成的。您可以通过 plt.get_cmap("name_of_colormap") 获得的所有内部颜色图也可以通过 this line

作为 cm.name_of_colormap 模块中的对象提供
locals().update(cmap_d)

话虽这么说,但我不知道为什么您会在 Eclipse 中遇到错误。