热图上的特定异常值 - matplotlib

2023-12-05

我正在生成一个带有固定离群值数据的热图,我需要将这些离群值显示为我使用的“热”cmap 调色板中的颜色。通过使用 cmap.set_bad('green') 和 np.ma.masked_values(data, outlier),我得到了一个看起来正确的图,但即使我使用 cmap.set_over,颜色条也没有与数据正确同步('绿色的')。 这是我一直在尝试的代码:

plt.xlim(0,35)
plt.ylim(0,35)
img=plt.imshow(data, interpolation='none',norm=norm, cmap=cmap,vmax=outlier)

cb_ax=fig.add_axes([0.85, 0.1, 0.03, 0.8])

cb=mpl.colorbar.ColorbarBase(cb_ax,cmap=cmap,norm=norm,extend='both',spacing='uniform')
cmap.set_over('green')
cmap.set_under('green')

这是数据(异常值显然是 1.69):

Data;A;B;C;D;E;F;G;H;I;J;K    
A;1.2;0;0;0;0;1.69;0;0;1.69;1.69;0    
B;0;0;0;0;0;1.69;0;0;1.69;1.69;0    
C;0;0;0;0;0;1.69;0;0.45;1.69;1.69;0.92    
D;1;0;-0.7;-1.2;0;1.69;0;0;1.69;1.69;0    
E;0;0;0;0;0;1.69;0;0;1.69;1.69;0    
F;1.69;1.69;1.69;1.69;1.69;1.69;1.69;1.69;1.69;1.69;1.69    
G;0;0;0;0;0;1.69;0;0;1.69;1.69;0    
H;0;0;0;0;0;1.69;0;0;1.69;1.69;0    
I;1.69;1.69;1.69;1.69;1.69;1.69;1.69;1.69;1.69;1.69;1.69
J;1.69;1.69;1.69;1.69;1.69;1.69;1.69;1.69;1.69;1.69;1.69
K;0;0;0;0;0;1.69;0;0;1.69;1.69;0

感谢任何帮助


发生的情况是,您使用的是屏蔽数组,其中异常值被屏蔽。

因此,它们不会在颜色条上显示为“结束”。 (即就 matplotlib 而言,屏蔽值无效,未超过阈值)

作为重现您的问题的独立示例:

import numpy as np
import matplotlib.pyplot as plt

threshold = 0.8
data = np.random.random((10,10))
data = np.ma.masked_greater(data, threshold)

fig, ax = plt.subplots()
im = ax.imshow(data, cmap=plt.cm.hot, interpolation='none')
cbar = fig.colorbar(im, extend='max')
cbar.cmap.set_over('green')

plt.show()

enter image description here

如果我们只是不将其设为掩码数组,而是指定vmax夸格到imshow:

import numpy as np
import matplotlib.pyplot as plt

threshold = 0.8
data = np.random.random((10,10))

fig, ax = plt.subplots()
im = ax.imshow(data, cmap=plt.cm.hot, interpolation='none', vmax=threshold)
cbar = fig.colorbar(im, extend='max')
cbar.cmap.set_over('green')

plt.show()

enter image description here

基本上,这是之间的区别set_over(或之下)和set_bad.

如果您仍然想使用屏蔽数组,您可以调用cbar.cmap.set_bad('green')set_over,你就会得到你想要的效果(尽管所有“坏”值,而不仅仅是超过阈值的值,都将是绿色的)。如果您采用该路线,则需要手动指定vmax。否则,它将被视为数组中未屏蔽部分的最大值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

热图上的特定异常值 - matplotlib 的相关文章

随机推荐

  • 如何在 C# 中创建自定义属性

    任何人都可以向我解释一个带有代码的自定义属性的非常基本的示例吗 首先编写一个派生自的类属性 public class MyCustomAttribute Attribute public string SomeProperty get se
  • 使用 NSTask 的 Swift 2.1 OSx shell 命令在从 xcode 运行时有效,但在导出时无效

    我编写了一个简单的 OSx 10 11 应用程序 以便在按下按钮时执行 shell 命令 当我从 xcode 运行它时它可以工作 但是当我通过 存档 导出应用程序时 其中一个按钮不再工作 我没有收到错误 也没有得到任何输出 我使用的是绝对路
  • 如何选择和提取两个元素之间的文本?

    我正在尝试刮this使用scrapy的网站 页面结构如下所示 div class list a a h4 class li group Follows h4 div class soda odd a href Star Trek a div
  • 如何将Matlab中的数据导出到excel循环?

    我有一个 for循环 的代码 对于我 1 4 陈述 y sim 净 我 结尾 现在我需要将 y 的值导出到 Excel 工作表 为此我用了 xlswrite 输出数据 xls y 输出数据 A1 但我的问题是excel的ID 即 A1 应该
  • 使用 PDFBox 生成的 PDF 为空白

    我在尝试着将内容写入 PDF文件 我已经写了代码 public ByteArrayOutputStream createPDF String text throws IOException COSVisitorException PDDoc
  • 在 python 中使用 asyncio 运行多个套接字

    设置 Python 3 7 4 我正在尝试使用 asyncio 在不同端口上侦听来创建 6 个套接字 我尝试像这样实现它 Code import asyncio async def client thread reader writer w
  • 切换路由时组件中的非作用域样式仅应用一次

    Vue js 作用域 CSS 文档提到 您可以在同一组件中包含作用域样式和非作用域样式 我建造了示例应用程序vue router并使用两个单个文件组件而不是示例的字符串模板 渲染符合预期 然后 我尝试在组件中应用作用域样式和非作用域样式 在
  • 为每个用户创建个人页面,PHP

    我想要做的是为每个在我的页面上注册的用户创建一个网页 例如 www someweb com 用户名 这将是他们的网页 我知道这可以很容易地完成mkdir 和其他相关功能 但问题是我的根文件夹不是chmod 777我不想chmod 777由于
  • Highcharts 工具提示背景根据线

    我正在尝试使用 Highcharts 使工具提示的背景颜色与线条的颜色相匹配 我正在尝试找到最合理的本机方法来处理这个问题 如果可以避免添加 div div 格式化程序有背景颜色 那就太好了 但如果没有 我想这也有效 线条颜色和数量会发生很
  • 测试移动网站[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我们正准备推出一个移动网站
  • 使用 XmlReader.Create(uri) 防止或处理超时

    有时 我在通过 URL 读取 XML 时会遇到超时异常 我可以采取什么措施来防止这种情况发生 还是远程服务器有问题 下面是我的简单代码 XmlDocument doc new XmlDocument doc Load XmlReader C
  • 带有 mod_wsgi 的 Django 返回 403 错误

    我正在尝试将 Django 与 Apache 和 mod wsgi 一起使用 使用默认的 Django Web 服务器 一切进展顺利 但现在在尝试加载页面时出现 403 访问禁止 错误 我在这里搜索了以前的帖子并阅读了官方文档 但那里的解决
  • 是否可以在opengl中使用深度缓冲区渲染3D纹理

    我正在尝试实现一些程序并使用这个经典代码 glBindFramebuffer GL FRAMEBUFFER framebuffer 绑定深度缓冲区 glGenRenderbuffers 1 depthbuffer glBindRenderb
  • jQuery 将 HTML 表转换为 XML

    我使用以下 jQuery 代码从远程主机检索 HTML var loadUrl URL html result html ajax load load loadUrl table schedule 这给了我以下 HTML table cla
  • 项目文件存储在 git 存储库“.git”文件夹中的哪里? [复制]

    这个问题在这里已经有答案了 我为我的许多项目创建了一个远程存储库 因此它是我的目标push的 与 git 的理念相反 但它充当中央存储库 然而当我去 git服务器上的文件夹有以下形式的目录结构 branches hooks applypat
  • Ember JS 的可重用组件/视图

    我正在尝试创建一个可重用的组件或视图 用于创建包含在 Bootstrap 控制组中的标签和文本输入 该组件需要创建如下内容 div class control group div
  • 如何修复 InvalidStateError:没有远程 SDP 时无法添加 ICE 候选者

    我正在创建一个 webRTC 视频聊天 当从 Firefox 发起呼叫时显示呼叫者所有活动成员 并且接收者使用 chrome 此错误显示 未捕获 承诺 DOMException 无法在 RTCPeerConnection 上执行 addIc
  • 在 Express 中更新 cookie 会话,但未在浏览器中注册

    我已经设置了一个工作登录测试 如下所示 var express require express var fs require fs var http require http var path require path var routes
  • WCF 服务移至 SSL 后,PrincipalPermission.Demand() 失败

    我的 Silverlight WCF 应用程序在每个服务方法中使用 PrimaryPermission 来确保用户经过身份验证 当我将所有内容配置为 HTTP 时 这一切都很好 但是一旦我将服务端点 绑定配置为支持 HTTPS SSL 当我
  • 热图上的特定异常值 - matplotlib

    我正在生成一个带有固定离群值数据的热图 我需要将这些离群值显示为我使用的 热 cmap 调色板中的颜色 通过使用 cmap set bad green 和 np ma masked values data outlier 我得到了一个看起来