首页 > 解决方案 > matplotlib.cm.coolwarm(用于 Google 的 Colaboratory TensorFlow 教程)是 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 导入中得到一个“未定义的变量”错误。

我的系统:
Mac OS:10.13.6
eclipse: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”相关的“来自导入的未定义变量”错误:

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

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

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

谢谢你的想法。

标签: python-3.xtensorflowmatplotlibundefined-variable

解决方案


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

以下适用于任何版本的 matplotlib

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

您在源代码中找不到的原因cm.coolwarm是这些名称是动态生成的。您可以通过 获取的所有内部颜色图也可以通过此行作为模块中plt.get_cmap("name_of_colormap")的对象使用cmcm.name_of_colormap

locals().update(cmap_d)

话虽如此,我不知道为什么您会在 Eclipse 中出现错误。


推荐阅读