Python Matplotlib:如何添加";“坏的”;传奇的色彩?

Python Matplotlib:如何添加";“坏的”;传奇的色彩?,python,matplotlib,confusion-matrix,Python,Matplotlib,Confusion Matrix,matplotlib中的颜色映射允许使用特定颜色标记“错误”值,即NaN。之后绘制颜色栏时,不包括此颜色。对于坏值的特定颜色,是否有一种首选方法可以同时使用连续颜色栏和离散图例 编辑: 当然,这是可以利用的。然而,这种解决办法并不令人满意。图例/颜色栏的功能是向用户阐明颜色的含义。在我看来,此解决方案并不表示该值为NaN 代码示例: import numpy as np import matplotlib.pyplot as plt import matplotlib.cm as cm dat

matplotlib中的颜色映射允许使用特定颜色标记“错误”值,即NaN。之后绘制颜色栏时,不包括此颜色。对于坏值的特定颜色,是否有一种首选方法可以同时使用连续颜色栏和离散图例

编辑: 当然,这是可以利用的。然而,这种解决办法并不令人满意。图例/颜色栏的功能是向用户阐明颜色的含义。在我看来,此解决方案并不表示该值为NaN

代码示例:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

data = np.random.rand(10, 10)
data[0:3, 0:3] = np.nan  # some bad values for set_bad

colMap = cm.RdBu
colMap.set_bad(color='black')

plt.figure(figsize=(10, 9))
confusion_matrix = plt.imshow(data, cmap=colMap, vmin=0, vmax=1)
plt.colorbar(confusion_matrix)
plt.show()
产生:


您可以使用中所示的超出范围打印方法之一来完成此操作

将错误值的颜色设置为-999,并使用关键字
extend

另一种方法是使用蒙版打印,如图所示


另一种方法是使用。可以找到一个示例。

可以按如下方式创建和使用图例元素:

从matplotlib.patches导入修补程序
图例元素=[Patch(facecolor=colMap(np.nan),label='Bad values')]
plt.图例(手柄=图例元素)

您可以使用中显示的方法之一将坏值的颜色设置为-999,并使用关键字
扩展
。您可以使用自定义的勾号标签