Matplotlib:如何取消设置默认的色彩映射?

时间:2017-11-08 20:41:13

标签: python matplotlib colormap

我正在使用matplotlib显示图像并对图像应用一些色彩图。我想你可以用

之类的东西设置默认的色彩映射表
plt.set_cmap('jet')

然后每次使用plt.imshow()

时都会应用该色彩映射

但是撤消呢?如果我想在没有任何色彩图的情况下再次显示原始图像?我没有在文档中找到任何关于这一点,也没有通过快速谷歌搜索,所以任何帮助将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用set_cmap设置色彩映射表。这会更改绘制的所有后续数字的颜色图。如果要撤消所做的更改,只需返回matplotlib默认色图,matplotlib 2中的默认色图为viridis

但是,cmap还有一个imshow()参数,可让您更改应用于单个绘图的色彩映射。这意味着您不必更改全局色彩映射,但 必须在每次调用imshow() 时写入此内容

import numpy as np
import matplotlib.pyplot as plt

data = np.random.randn(25).reshape(5,5)

fig, (ax1, ax2) = plt.subplots(1,2)

ax1.imshow(data)
ax1.set_title("Matplotlib default cmap")

ax2.imshow(data, cmap='jet')
ax2.set_title("jet cmap")

plt.show()

给出了:

enter image description here

答案 1 :(得分:0)

命令plt.set_cmap("jet")将rcParams中的colormap设置为"jet" colormap。

为了取回默认的色彩映射,您可以将cmap设置为rcParamsDefault字典中的默认色彩映射。

import matplotlib.pyplot as plt
print(plt.rcParams["image.cmap"]) # prints viridis

plt.set_cmap("jet")
print(plt.rcParams["image.cmap"]) # prints jet

plt.set_cmap(plt.rcParamsDefault["image.cmap"])
print(plt.rcParams["image.cmap"]) # prints viridis