【问题标题】:Matplotlib: How to unset default colormap?Matplotlib:如何取消设置默认颜色图?
【发布时间】:2018-04-21 16:55:15
【问题描述】:

我正在使用 matplotlib 显示图像并将一些颜色图应用于图像。我认为您可以通过类似的方式设置默认颜色图

plt.set_cmap('jet')

然后每次使用plt.imshow()时都会应用该颜色图

但是如何撤消呢?如果我想在没有任何颜色图的情况下再次显示原始图像?我没有在文档中找到任何关于此的内容,也没有通过快速谷歌搜索,因此我们将不胜感激。

谢谢!

【问题讨论】:

  • “没有任何颜色图”是什么意思?如果您不使用set_cmap('jet') 设置颜色图,则默认颜色图将应用于图像。你只是想回到 matplotlib 默认值吗?
  • @DavidG 是的,我的问题是如果您已经使用set_cmap() 设置了其他颜色图,我的问题是如何取回默认颜色图

标签: python matplotlib colormap


【解决方案1】:

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

但是,imshow() 还有一个cmap 参数,可让您更改应用于单个绘图的颜色图。这意味着您不必一直更改全局颜色图,但是您必须在每次调用 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()

这给出了:

【讨论】:

  • viridis 是我要找的那个!谢谢!!我知道imshow() 中的cmap 参数,但不知道可以由set_cmap() 设置的默认颜色图
  • 没问题。 This 显示了对 matplotlib 2 颜色图默认样式所做的更改
【解决方案2】:

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

为了取回默认颜色图,您可以将 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

【讨论】:

    猜你喜欢
    • 2016-01-16
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    相关资源
    最近更新 更多