如何修改Matplotlib定性颜色图上的间隔? [英] How to modify intervals on matplotlib's qualitative color maps?
本文介绍了如何修改Matplotlib定性颜色图上的间隔?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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.25的颜色与0.25相同,不仅替换绘图本身中的颜色,还替换颜色栏中的颜色,我该如何操作?预期的输出将是:左上角的所有3个方块都是红色的,色彩映射表中底部的5个矩形也都是红色的。
通过这样做,我实际上是在修改条形图中红色的间隔:新版本将显示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)
这篇关于如何修改Matplotlib定性颜色图上的间隔?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文