Matplotlib 峰值位于中心且边缘为零的Matpliblib颜色贴图
我正在寻找一个自定义颜色贴图,它高亮显示中心(值为1),边缘仅显示白色(值为0和2)。理想情况下,应该有一个从1到[0,2]的梯度 通常的彩色贴图则相反:从中心发散(中心为白色)Matplotlib 峰值位于中心且边缘为零的Matpliblib颜色贴图,matplotlib,colormap,Matplotlib,Colormap,我正在寻找一个自定义颜色贴图,它高亮显示中心(值为1),边缘仅显示白色(值为0和2)。理想情况下,应该有一个从1到[0,2]的梯度 通常的彩色贴图则相反:从中心发散(中心为白色) 感谢您的帮助您可以根据matplotlib中的可用颜色贴图创建 from matplotlib.colors import ListedColormap def show_cmap(ax, cmap): n = 256 ax.imshow(np.tile(np.arange(n), [int(n*0.
感谢您的帮助您可以根据matplotlib中的可用颜色贴图创建
from matplotlib.colors import ListedColormap
def show_cmap(ax, cmap):
n = 256
ax.imshow(np.tile(np.arange(n), [int(n*0.20),1]),
cmap=cmap,
interpolation="nearest", aspect="auto")
ax.set_xticks([])
ax.set_yticks([])
ax.set_xticklabels([])
ax.set_yticklabels([])
c1 = plt.cm.Blues(range(0, 128))
c2 = c1[::-1]
c = np.vstack([c1, c2])
cmap = ListedColormap(c)
fig, ax = plt.subplots(1, 1, figsize=(7.2, 7.2))
show_cmap(ax, cmap)
您可以在matplotlib.colors
模块中使用中的方法进行此操作
在这里,我们列出了3种颜色([“白色”、“红色”、“白色”]
)。这可以通过更改这些颜色名称中的任何一种来轻松定制
例如:
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
import numpy as np
cmap = LinearSegmentedColormap.from_list('wrw', ["white", "red", "white"], N=256)
a = np.arange(0, 2, 0.01).reshape(20, 10)
fig, ax = plt.subplots()
p = ax.pcolormesh(a, cmap=cmap, vmin=0, vmax=2)
fig.colorbar(p)
plt.show()
请检查下面的解决方案。