python-3.x - 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。但我是一个相对新手,只是想我会检查一下是否有我遗漏的东西......
谢谢你的想法。
解决方案
在任何较新版本的 matplotlib 中都不会弃用coolwarm 颜色图。据我所知,未来也没有这样做的计划。
以下适用于任何版本的 matplotlib
from matplotlib import cm
print(cm.coolwarm(0.5))
您在源代码中找不到的原因cm.coolwarm
是这些名称是动态生成的。您可以通过 获取的所有内部颜色图也可以通过此行作为模块中plt.get_cmap("name_of_colormap")
的对象使用cm
cm.name_of_colormap
locals().update(cmap_d)
话虽如此,我不知道为什么您会在 Eclipse 中出现错误。
推荐阅读
- ios - 将 iBeacon 监控逻辑放在应用程序委托中以便在应用程序会话期间存在是否明智?
- python - 拥有实例的 SQLAlchemy 父级
- java - 工具栏运行菜单箭头的Eclipse快捷键?
- r - R:如何将一个函数应用到一些列成数据组?
- c++ - SQLConnect 服务失败,但从 Visual Studio 执行时没有
- java - HashMap rehash/resize容量
- string - Golang 中的字符串解码
- c# - 用于表单登录的 RestSharp API 始终返回 OK
- angular6 - 响应式表单动态添加验证器
- python - 为多个功能的字典替换多个 elif