python - 自定义 Matplotlib colourmap - 像 pgfplots

标签 python matplotlib color-mapping

是否有可能从 pgfplots 中获取蓝-黄-红颜色图,如本例所示 https://tex.stackexchange.com/questions/39145/scaling-colormaps-with-pgfplots , 在 matplotlib 中 ?

我看过如何在 matplotlib 中定义自定义颜色映射,但这似乎非常困难。

最佳答案

定义自定义 cmap 是可行的方法。这并不难,但您必须确保理解 color dict 中的所有值。

对于每种颜色,您指定三列值。第一列是颜色出现的位置,0 是第一个,1 是最后一个。由于您需要三种颜色,因此定义了三个均匀分布的位置 0、0.5 和 1.0。

你想要:

0.0:蓝色

0.5:黄色

1.0:红色

第二列定义“到”位置的颜色,第三列定义“从/之后”该位置的颜色。如果你想让颜色逐渐褪色,你应该保持它们不变。指定不同的颜色允许颜色图在特定位置后突然“跳跃”。

要在位置 0.0 处获得蓝色,请将红色和绿色设置为 0,将蓝色设置为 1。要在位置 0.5 处获得黄色,请将红色和绿色设置为 1,将蓝色设置为零。等等……

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

cdict = {'red': ((0.0, 0.0, 0.0),
                 (0.5, 1.0, 1.0),
                 (1.0, 1.0, 1.0)),
        'green':((0.0, 0.0, 0.0),
                 (0.5, 1.0, 1.0),
                 (1.0, 0.0, 0.0)),
         'blue':((0.0, 1.0, 1.0),
                 (0.5, 0.0, 0.0),
                 (1.0, 0.0, 0.0))}

custom_cmap = mpl.colors.LinearSegmentedColormap('mymap', cdict, 256)

plt.imshow(np.arange(36).reshape(6,6), cmap=custom_cmap, interpolation='none')

enter image description here

关于python - 自定义 Matplotlib colourmap - 像 pgfplots,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22535779/

相关文章:

python - 从字符串中提取带括号的 Python 表达式

python - 按数组python中的字典值排序

python:在顶部绘制带有函数线的直方图

c# - 透明度如何在绘制矩形(边框或整个区域)(C#)中起作用?

python - 是否有 python 函数来重命名对象的属性?

python - Matplotlib 上的共享分类 Y 轴

python - 使用 groupby 绘制选举捐赠信息的堆积条形图

python - 使用 LinearSegmentedColormap 时出现意外插值

python - 如何从 python 中保存/检索 matlab 执行的内容?