ValueError: Colormap viridis is not recognized. Possible values are: autumn, gist_stern, terrain, hsv, Dark2_r, seismic, Set1_r, bwr, hot, YlOrBr, BuPu_r, CMRmap_r, Pastel1_r, rainbow, coolwarm, summer_r, Wistia, RdYlGn, rainbow_r, YlOrBr_r, seismic_r, gist_rainbow, BrBG_r, bone, YlGnBu, brg_r, bwr_r, jet_r, Set2, OrRd_r, gnuplot, YlGn, ocean_r, PuOr_r, gist_rainbow_r, pink_r, RdYlBu, spectral, RdGy_r, Greens_r, hot_r, winter, Spectral_r, jet, gist_yarg_r, Purples, gnuplot_r, gray, RdGy, afmhot_r, PuRd, Oranges, BrBG, gnuplot2, CMRmap, gist_stern_r, Reds, PuOr, PiYG_r, Blues, Accent, RdYlBu_r, Paired, PuRd_r, GnBu, RdYlGn_r, Set1, YlOrRd, cubehelix_r, PuBuGn, summer, gist_gray, ocean, Set2_r, YlGnBu_r, Pastel1, Spectral, PiYG, Paired_r, Pastel2_r, gist_heat_r, Blues_r, Reds_r, Oranges_r, cubehelix, spring_r, spring, prism, cool, YlGn_r, flag_r, PuBuGn_r, BuGn_r, BuPu, gist_ncar_r, Set3_r, RdBu_r, cool_r, Pastel2, spectral_r, brg, gist_heat, Set3, gray_r, Greys_r, prism_r, copper, PuBu_r, YlOrRd_r, nipy_spectral_r, flag, RdPu, PRGn, gist_gray_r, afmhot, Wistia_r, RdPu_r, hsv_r, binary_r, gist_earth_r, terrain_r, OrRd, pink, nipy_spectral, Greens, PRGn_r, winter_r, Purples_r, copper_r, RdBu, binary, bone_r, autumn_r, coolwarm_r, GnBu_r, gist_ncar, gnuplot2_r, gist_yarg, Greys, BuGn, gist_earth, PuBu, Accent_r, Dark2 In [2]: runfile('C:/Users/Administrator/.spyder2-py3/temp.py', wdir='C:/Users/Administrator/.spyder2-py3')  Traceback (most recent call last): File "<ipython-input-2-0b00835e6d8b>", line 1, in <module> runfile('C:/Users/Administrator/.spyder2-py3/temp.py', wdir='C:/Users/Administrator/.spyder2-py3') File "C:\Anaconda3-2.3.0\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile execfile(filename, namespace) File "C:\Anaconda3-2.3.0\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 85, in execfile exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace) File "C:/Users/Administrator/.spyder2-py3/temp.py", line 16, in <module> plt.imshow(result_matrix, cmap='viridis') File "C:\Anaconda3-2.3.0\lib\site-packages\matplotlib\pyplot.py", line 2961, in imshow imlim=imlim, resample=resample, url=url, **kwargs) File "C:\Anaconda3-2.3.0\lib\site-packages\matplotlib\axes\_axes.py", line 4642, in imshow filterrad=filterrad, resample=resample, **kwargs) File "C:\Anaconda3-2.3.0\lib\site-packages\matplotlib\image.py", line 575, in __init__ **kwargs File "C:\Anaconda3-2.3.0\lib\site-packages\matplotlib\image.py", line 91, in __init__ cm.ScalarMappable.__init__(self, norm, cmap) File "C:\Anaconda3-2.3.0\lib\site-packages\matplotlib\cm.py", line 197, in __init__ self.cmap = get_cmap(cmap) File "C:\Anaconda3-2.3.0\lib\site-packages\matplotlib\cm.py", line 163, in get_cmap % (name, ', '.join(cmap_d.keys()))) ValueError: Colormap viridis is not recognized. Possible values are: autumn, gist_stern, terrain, hsv, Dark2_r, seismic, Set1_r, bwr, hot, YlOrBr, BuPu_r, CMRmap_r, Pastel1_r, rainbow, coolwarm, summer_r, Wistia, RdYlGn, rainbow_r, YlOrBr_r, seismic_r, gist_rainbow, BrBG_r, bone, YlGnBu, brg_r, bwr_r, jet_r, Set2, OrRd_r, gnuplot, YlGn, ocean_r, PuOr_r, gist_rainbow_r, pink_r, RdYlBu, spectral, RdGy_r, Greens_r, hot_r, winter, Spectral_r, jet, gist_yarg_r, Purples, gnuplot_r, gray, RdGy, afmhot_r, PuRd, Oranges, BrBG, gnuplot2, CMRmap, gist_stern_r, Reds, PuOr, PiYG_r, Blues, Accent, RdYlBu_r, Paired, PuRd_r, GnBu, RdYlGn_r, Set1, YlOrRd, cubehelix_r, PuBuGn, summer, gist_gray, ocean, Set2_r, YlGnBu_r, Pastel1, Spectral, PiYG, Paired_r, Pastel2_r, gist_heat_r, Blues_r, Reds_r, Oranges_r, cubehelix, spring_r, spring, prism, cool, YlGn_r, flag_r, PuBuGn_r, BuGn_r, BuPu, gist_ncar_r, Set3_r, RdBu_r, cool_r, Pastel2, spectral_r, brg, gist_heat, Set3, gray_r, Greys_r, prism_r, copper, PuBu_r, YlOrRd_r, nipy_spectral_r, flag, RdPu, PRGn, gist_gray_r, afmhot, Wistia_r, RdPu_r, hsv_r, binary_r, gist_earth_r, terrain_r, OrRd, pink, nipy_spectral, Greens, PRGn_r, winter_r, Purples_r, copper_r, RdBu, binary, bone_r, autumn_r, coolwarm_r, GnBu_r, gist_ncar, gnuplot2_r, gist_yarg, Greys, BuGn, gist_earth, PuBu, Accent_r, Dark2 In [3]:
时间: 2025-06-02 09:41:03 浏览: 23
### 解决方案:ValueError: Colormap viridis is not recognized
如果遇到 `ValueError: Colormap viridis is not recognized` 错误,可能的原因之一是使用的 Matplotlib 版本过低。`viridis` 是一种感知均匀的 colormap,在 Matplotlib 1.5 中首次引入[^3]。因此,如果当前安装的 Matplotlib 版本低于 1.5,则无法识别该 colormap。
#### 升级 Matplotlib
最直接的解决方案是升级到支持 `viridis` 的 Matplotlib 版本。可以通过以下命令完成:
```bash
pip install --upgrade matplotlib
```
或者,如果你使用的是 conda 环境,可以执行:
```bash
conda update matplotlib
```
确认升级完成后,可通过以下代码验证版本号以及是否存在 `viridis` colormap:
```python
import matplotlib.pyplot as plt
print(plt.__version__) # 输出 Matplotlib 版本号
if hasattr(plt.cm, 'viridis'):
print("Colormap 'viridis' is available.")
else:
print("Colormap 'viridis' is NOT available.")
```
#### 替代 Colormap
如果因环境限制无法升级 Matplotlib,可以选择其他内置 colormap 来替代 `viridis`。例如,`plasma`、`inferno` 和 `magma` 同样属于感知均匀的颜色映射表,并且在较新的 Matplotlib 版本中也广泛适用。以下是替换示例:
```python
from matplotlib import cm
# 使用 plasma 替代 viridis
cmap = cm.plasma
print(cmap.name) # 输出 colormap 名称
```
需要注意的是,这些替代选项同样需要 Matplotlib 至少为 1.5 或更高版本才能正常使用。
#### 自定义 Colormap
当确实无法满足版本要求时,还可以考虑创建自定义 colormap。下面是一个简单的例子,演示如何构建类似于 `viridis` 的颜色渐变效果:
```python
import numpy as np
import matplotlib.colors as mcolors
import matplotlib.pyplot as plt
def create_custom_colormap():
colors = [(0, "#440154"), (0.25, "#3B528B"), (0.5, "#21918C"),
(0.75, "#5DC962"), (1, "#FDE725")] # 定义颜色序列
return mcolors.LinearSegmentedColormap.from_list('custom_viridis', colors)
custom_cmap = create_custom_colormap()
data = np.random.rand(10, 10)
plt.imshow(data, cmap=custom_cmap)
plt.colorbar()
plt.show()
```
此方法允许你在任何版本下实现近似的效果,但手动调整可能会增加开发成本。
---
阅读全文
相关推荐


















