是否有可能从 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')
关于python - 自定义 Matplotlib colourmap - 像 pgfplots,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22535779/