import matplotlib.pyplot as plt
import numpy as np
我有一个二维Numpy数组:
mock=
np.array([[0.1,0.2,0.3],
[0.2,0.3,0.4],
[0.3,0.4,0.5],
[0.4,0.5,0.6],
[0.5,0.6,0.7],
[0.6,0.7,0.8],
[0.7,0.8,0.9]])
我使用tab20c
色彩映射表绘制这些值,来自所谓的定性色彩映射表:
plt.figure(figsize=(6,6))
im = plt.imshow(mock,cmap = "tab20c", vmin=0, vmax=1)
plt.colorbar(im)
通过这样做,我实际上是在修改条形图中红色的间隔:新版本将显示0到0.25红色间隔中的所有内容,而不是将0.2到0.25之间的间隔值显示为红色。
您可以调整现有的色彩映射表:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.colors import ListedColormap, LinearSegmentedColormap
tab20c = cm.get_cmap('tab20c', 256)
newcolors = tab20c(np.linspace(0, 1, 256))
red = np.array([1, 0, 0, 1])
newcolors[:int(256/4), :] = red
newcmp = ListedColormap(newcolors)
mock=
np.array([[0.1,0.2,0.3],
[0.2,0.3,0.4],
[0.3,0.4,0.5],
[0.4,0.5,0.6],
[0.5,0.6,0.7],
[0.6,0.7,0.8],
[0.7,0.8,0.9]])
plt.figure(figsize=(6,6))
im = plt.imshow(mock,cmap = newcmp, vmin=0.0, vmax=1)
plt.colorbar(im)