每个单元格具有不同色标的 seaborn 混淆矩阵
Confusion Matrix with seaborn with different color scales per cell
我想用 True/False Positive/Negative
创建混淆矩阵图。
目标是让数字在 [0.0, 1.0]
范围内,对于 True Negative/Positive
,色阶为 red->green
,对于 False Negative/Positive
是 green->red
。我没有在 seaborn 文档中找到任何可以这样做的东西,这有可能吗?它将允许快速浏览数据,任何红色的东西都会有问题。
目标是左上角和右下角的单元格与左下角和右上角的颜色图不同。这可能吗?
示例代码:
import numpy as np;
import seaborn as sns;
sns.set_theme()
uniform_data = np.ndarray(shape=(2,2))
uniform_data[0][0] = 0.1
uniform_data[0][1] = 0.9
uniform_data[1][0] = 0.05
uniform_data[1][1] = 0.95
ax = sns.heatmap(uniform_data, annot=True, cmap=sns.color_palette("vlag", as_cmap=True))
图像中的结果:
但我想要的是左上角红色(因为 0.1 在这里是一个错误的值),右下角蓝色(因为 0.95 在这里很好)
像这样的东西(用油漆快速完成,所以不要介意错误,但情绪是存在的):
您似乎想反转对角线上元素的颜色。 sns.heatmap
的 data
参数决定颜色,而 annot=
参数可以为注释设置不同的东西。修改数据并保留原始注释:
import numpy as np
import seaborn as sns
sns.set_theme()
uniform_data = np.ndarray(shape=(2, 2))
uniform_data[0][0] = 0.1
uniform_data[0][1] = 0.9
uniform_data[1][0] = 0.05
uniform_data[1][1] = 0.95
ax = sns.heatmap(np.abs(np.eye(2) - uniform_data), annot=uniform_data, cmap="vlag", vmin=0, vmax=1)
我想用 True/False Positive/Negative
创建混淆矩阵图。
目标是让数字在 [0.0, 1.0]
范围内,对于 True Negative/Positive
,色阶为 red->green
,对于 False Negative/Positive
是 green->red
。我没有在 seaborn 文档中找到任何可以这样做的东西,这有可能吗?它将允许快速浏览数据,任何红色的东西都会有问题。
目标是左上角和右下角的单元格与左下角和右上角的颜色图不同。这可能吗?
示例代码:
import numpy as np;
import seaborn as sns;
sns.set_theme()
uniform_data = np.ndarray(shape=(2,2))
uniform_data[0][0] = 0.1
uniform_data[0][1] = 0.9
uniform_data[1][0] = 0.05
uniform_data[1][1] = 0.95
ax = sns.heatmap(uniform_data, annot=True, cmap=sns.color_palette("vlag", as_cmap=True))
图像中的结果:
但我想要的是左上角红色(因为 0.1 在这里是一个错误的值),右下角蓝色(因为 0.95 在这里很好)
像这样的东西(用油漆快速完成,所以不要介意错误,但情绪是存在的):
您似乎想反转对角线上元素的颜色。 sns.heatmap
的 data
参数决定颜色,而 annot=
参数可以为注释设置不同的东西。修改数据并保留原始注释:
import numpy as np
import seaborn as sns
sns.set_theme()
uniform_data = np.ndarray(shape=(2, 2))
uniform_data[0][0] = 0.1
uniform_data[0][1] = 0.9
uniform_data[1][0] = 0.05
uniform_data[1][1] = 0.95
ax = sns.heatmap(np.abs(np.eye(2) - uniform_data), annot=uniform_data, cmap="vlag", vmin=0, vmax=1)