如何修改Matplotlib定性颜色图上的间隔? [英] How to modify intervals on matplotlib's qualitative color maps?

查看:0
本文介绍了如何修改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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆