gpt4 book ai didi

python - 如何在matplotlib中使colorbar一端的颜色变深?

转载 作者:太空宇宙 更新时间:2023-11-03 13:08:18 27 4
gpt4 key购买 nike

假设我有以下情节:

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(1)
data = np.sort(np.random.rand(8,12))
plt.figure()
c = plt.pcolor(data, edgecolors='k', linewidths=4, cmap='Blues', vmin=0.0, vmax=1.0)
plt.colorbar(c)
plt.show()

enter image description here

颜色条将(几乎)白色分配给最低值。我如何使它稍微暗一点?我想要的不是从白色到蓝色的颜色条,而是从浅蓝色到深蓝色。例如,值 0 的颜色应该类似于上图中值 0.4 的颜色。

我找到了 this在搜索它时,但问题(和解决方案)是关于使所有颜色变暗,这不是我要找的。

最佳答案

尽管@user3483203 的建议很好,但您确实重新插值了颜色图。您可以通过首先将颜色图作为颜色矩阵(基于原始插值)然后选择该矩阵的一部分作为新颜色图来避免这种情况:

import matplotlib as mpl

cmap = mpl.cm.Blues(np.linspace(0,1,20))
cmap = mpl.colors.ListedColormap(cmap[10:,:-1])

你的例子就变成了

import numpy             as np
import matplotlib.pyplot as plt
import matplotlib as mpl

cmap = mpl.cm.Blues(np.linspace(0,1,20))
cmap = mpl.colors.ListedColormap(cmap[10:,:-1])

np.random.seed(1)
data = np.sort(np.random.rand(8,12))

plt.figure()
c = plt.pcolor(data, edgecolors='k', linewidths=4, cmap=cmap, vmin=0.0, vmax=1.0)
plt.colorbar(c)
plt.show()

给出

enter image description here

在这种情况下,这可能等同于重新插值的颜色图,因为 Blues 本身来自一些插值。

对于其他颜色图,结果可能会大不相同。例如,对于 jet:

  • 没有新的插值,只是原始颜色图的一个子集(即当前解决方案):

    enter image description here

  • 使用重新插值(即@user3483203 的解决方案):

    enter image description here

关于python - 如何在matplotlib中使colorbar一端的颜色变深?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51034408/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com