gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:18:30 29 4
gpt4 key购买 nike

在 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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com