python - 仅绘制热图的上/下三角形

标签 python matplotlib plot

在 maptplotlib 中,可以使用 imshow 函数创建相关矩阵的热图表示。根据定义,这样的矩阵围绕其主对角线对称,因此不需要同时呈现上下三角形。例如: correlation matrix
(来源:wisc.edu)

上面的例子取自this site 不幸的是,我不知道如何在 matplotlib 中做到这一点。将矩阵的上/下部分设置为无会导致黑色三角形。我用谷歌搜索了“matplotlib 缺失值”,但找不到任何有用的东西

最佳答案

doug 提供的答案的问题在于它依赖于颜色图将零值映射到白色的事实。这意味着不包含白色的颜色图没有用处。解决的关键是 cm.set_bad 函数。您可以使用 None 或使用 NumPy 屏蔽数组和 set_bad 将矩阵中不需要的部分屏蔽为白色,而不是默认的黑色。采用 doug 的例子,我们得到以下结果:

import numpy as NP
from matplotlib import pyplot as PLT
from matplotlib import cm as CM

A = NP.random.randint(10, 100, 100).reshape(10, 10)
mask =  NP.tri(A.shape[0], k=-1)
A = NP.ma.array(A, mask=mask) # mask out the lower triangle
fig = PLT.figure()
ax1 = fig.add_subplot(111)
cmap = CM.get_cmap('jet', 10) # jet doesn't have white color
cmap.set_bad('w') # default value is 'k'
ax1.imshow(A, interpolation="nearest", cmap=cmap)
ax1.grid(True)
PLT.show()

关于python - 仅绘制热图的上/下三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2318529/

相关文章:

python - SelectPercentile 评分函数如何工作?

python - 其他线程中的 QMessageBox

python - 在 vagrant 的 Django 应用程序中创建迁移文件夹的权限被拒绝

python - 如何创建按月分组的年度条形图

python - 从 python 创建 "The Economist"样式图

matlab - 如何在 Matlab 中绘制带通滤波器传递函数的频率响应?

python - 绘制数据框的散点图

python - 返回 numpy 数组的函数上的 scipy.integrate.quad

Python排序可视化

r - 在信纸尺寸的纸张上指定精确的绘图位置