如何在此热图上添加遮罩?
How do i put a mask on this heatmap?
我已经在上面创建了整个数据集的热图,但是现在我想为与我的目标变量最相关的 10 个点创建热图。我已经打印了数据和掩码的形状,它们都是 10 x 10,但是我得到了这个错误:
ValueError: Mask must have the same shape as the data.
我使用了来自 kaggle 的虚拟数据集作为示例。
corr = training.corr()
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True
f, ax = plt.subplots(figsize=(12, 9))
sns.heatmap(corr, mask=mask,vmin=0.0, vmax=1.0, center=0,
square=True, linewidths=.5, cbar_kws={"shrink": .5})
我的代码的第一部分(上面)计算了整个数据集的热图,并在数据的上半部分使用了掩码。
k = 10
cols = corr.nlargest(k, 'SalePrice')['SalePrice'].index
cm = np.corrcoef(training[cols].values.T)
sns.set(font_scale=1.25)
f, ax = plt.subplots(figsize=(12, 9))
mask2 = np.zeros_like(cm, dtype=np.bool)
mask2[np.triu_indices_from(mask2)] = True
hm = sns.heatmap(cm, vmin=0.0, vmax=1.0, mask=mask, cbar=True,
annot=True, square=True, fmt='.2f', annot_kws={'size': 10},
yticklabels=cols.values, xticklabels=cols.values)
plt.show()
这应该输出上半部分(重复值)被屏蔽的热图。
emphasized texti 已经看到我的代码中的错误,这是一个非常糟糕的拼写错误。我已将错误放在“**”中以指示粗体文本书写(我将 mask = mask - 这是先前数据集的掩码并且形状不同)。如果您正在处理它,谢谢...也许有更短的方法来完成此代码,所以请继续分享。
**mask2** = np.zeros_like(cm, dtype=np.bool)
**mask2**[np.triu_indices_from(mask2)] = True
hm = sns.heatmap(cm, vmin=0.0, vmax=1.0, mask=**mask**, cbar=True,
annot=True, square=True, fmt='.2f', annot_kws={'size': 10},
yticklabels=cols.values, xticklabels=cols.values)
我已经在上面创建了整个数据集的热图,但是现在我想为与我的目标变量最相关的 10 个点创建热图。我已经打印了数据和掩码的形状,它们都是 10 x 10,但是我得到了这个错误:
ValueError: Mask must have the same shape as the data.
我使用了来自 kaggle 的虚拟数据集作为示例。
corr = training.corr()
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True
f, ax = plt.subplots(figsize=(12, 9))
sns.heatmap(corr, mask=mask,vmin=0.0, vmax=1.0, center=0,
square=True, linewidths=.5, cbar_kws={"shrink": .5})
我的代码的第一部分(上面)计算了整个数据集的热图,并在数据的上半部分使用了掩码。
k = 10
cols = corr.nlargest(k, 'SalePrice')['SalePrice'].index
cm = np.corrcoef(training[cols].values.T)
sns.set(font_scale=1.25)
f, ax = plt.subplots(figsize=(12, 9))
mask2 = np.zeros_like(cm, dtype=np.bool)
mask2[np.triu_indices_from(mask2)] = True
hm = sns.heatmap(cm, vmin=0.0, vmax=1.0, mask=mask, cbar=True,
annot=True, square=True, fmt='.2f', annot_kws={'size': 10},
yticklabels=cols.values, xticklabels=cols.values)
plt.show()
这应该输出上半部分(重复值)被屏蔽的热图。
emphasized texti 已经看到我的代码中的错误,这是一个非常糟糕的拼写错误。我已将错误放在“**”中以指示粗体文本书写(我将 mask = mask - 这是先前数据集的掩码并且形状不同)。如果您正在处理它,谢谢...也许有更短的方法来完成此代码,所以请继续分享。
**mask2** = np.zeros_like(cm, dtype=np.bool)
**mask2**[np.triu_indices_from(mask2)] = True
hm = sns.heatmap(cm, vmin=0.0, vmax=1.0, mask=**mask**, cbar=True,
annot=True, square=True, fmt='.2f', annot_kws={'size': 10},
yticklabels=cols.values, xticklabels=cols.values)