科研绘图(八)线性热图

news/2024/2/29 16:31:32/文章来源:https://blog.csdn.net/qq_33690821/article/details/135622487

线性热图(Linear Heat Map)是一种数据可视化技术,用于展示数值在一维线性空间上的分布情况。它通常用于展示沿着一条线(例如时间线或任何一维序列)的数据密度或强度变化。线性热图与传统的二维热图不同,后者通常展示在二维平面上的数据分布。在线性热图中,线条的颜色或强度通常表示数据的强度或密度,颜色的变化可以揭示数据的模式或趋势。例如,在时间序列分析中,线性热图可以用来显示某个指标随时间的变化情况。

优点

1. 清晰展示趋势和模式:线性热图能有效地展现数据随时间或其他一维序列变化的趋势和模式。

2. 高效的空间利用:由于其一维性质,线性热图在显示长时间序列或大量数据点时可以节省空间。

3. 直观的颜色编码:通过颜色的变化,用户可以快速理解数据强度或密度的变化。

4. 易于集成:线性热图易于嵌入到表格、图表或地图中,作为辅助的视觉元素。

缺点

1. 数据维度有限:线性热图只能有效地展示一维数据,对于多维数据的展现能力有限。

2. 颜色使用的限制:颜色选择和对比度对于数据的可读性至关重要,不当的颜色选择可能导致误解。

3. 对比困难:如果需要对比多个不同序列的数据,单一的线性热图可能不够有效。

4. 过度简化数据:在某些情况下,为了适应线性格式,可能需要过度简化数据,这可能导致信息的丢失或误解。

总的来说,线性热图是一个强大的工具,特别适合于展示随时间变化的数据趋势。然而,它们最适合一维数据,且在设计时需要特别注意颜色的选择和对比度。在选择使用线性热图时,应考虑数据的性质和观众的需求。

 

下面这段代码首先导入了matplotlib.pyplot和numpy库。然后,它创建了三组数据:两组随机数据和一组基于余弦函数的数据。接着,代码使用matplotlib的子图功能(subplots)来创建三个水平排列的线性热图,每个图代表一组数据。每个数据点的颜色映射(cmap='hot')表示了其值的大小,而所有的Y轴都被隐藏了,因为这些图是一维的。最后,代码显示了这个组合图表。 

import matplotlib.pyplot as plt
import numpy as np# 创建示例数据
np.random.seed(0)
data1 = np.random.rand(100)
data2 = np.random.rand(100) * 0.5
data3 = np.abs(np.cos(np.linspace(0, 3.14, 100)))  # 确保数据在0-1之间
times = np.linspace(0, 1, 100)# 创建图表
fig, axs = plt.subplots(3, 1, figsize=(10, 6), sharex=True)# 第一组数据
axs[0].scatter(times, [1] * 100, c=data1, cmap='hot', s=100)
axs[0].set_title('Data Set 1')
axs[0].set_yticks([])# 第二组数据
axs[1].scatter(times, [1] * 100, c=data2, cmap='hot', s=100)
axs[1].set_title('Data Set 2')
axs[1].set_yticks([])# 第三组数据
axs[2].scatter(times, [1] * 100, c=data3, cmap='hot', s=100)
axs[2].set_title('Data Set 3')
axs[2].set_yticks([])plt.xlabel('Time')
plt.tight_layout()
plt.show()

我们对线性热图的可视化效果进行了一些美化:改变了配色方案:使用了viridis配色方案,这是一个现代且视觉上吸引人的颜色映射。为每个图添加了颜色条:每个子图都有自己的水平颜色条(colorbar),这有助于用户更好地理解每个图中颜色与强度之间的关系。清晰的标题和标签:每个子图都有标题,说明了它所代表的数据集。同时,时间轴(X轴)标签和颜色条标签也增加了图表的可读性。

具体可视化结果如下所示

 

 以下是,matlab可视化以及代码的展示

 

% 初始化数据
rng(0); % 设定随机数生成器的种子
data1 = rand(1, 100);
data2 = 0.5 * rand(1, 100);
data3 = abs(cos(linspace(0, 3.14, 100)));
times = linspace(0, 1, 100);% 创建图表
figure;% 第一组数据
subplot(3, 1, 1);
scatter(times, ones(1, 100), 100, data1, 'filled');
title('Data Set 1');
yticks([]);% 第二组数据
subplot(3, 1, 2);
scatter(times, ones(1, 100), 100, data2, 'filled');
title('Data Set 2');
yticks([]);% 第三组数据
subplot(3, 1, 3);
scatter(times, ones(1, 100), 100, data3, 'filled');
title('Data Set 3');
yticks([]);% 设置共享的x轴标签
xlabel('Time');
colormap('hot'); % 设定颜色映射

 

这段MATLAB代码将执行以下操作:

1、初始化数据:使用随机数生成三组数据。

2、创建图表:使用figure和subplot函数来创建一个包含三个子图的图表。

3、绘制散点图:使用scatter函数在每个子图上绘制数据。

4、设置标题和坐标轴:为每个子图添加标题,并设置y轴的刻度为空。

5、设置颜色映射:使用colormap('hot')来设置颜色方案

以下为进一步美化可视化结果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_925627.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

InternLM第5次课笔记

LMDeploy 大模型量化部署实践 1 大模型部署背景 2 LMDeploy简介 3 动手实践环节 https://github.com/InternLM/tutorial/blob/main/lmdeploy/lmdeploy.md 3

Spring Security-查询数据库认证

查询数据库认证权限(未自定义页面) 整合mybatis-plus 完成数据库操作 1.引入相关依赖 再父工程中 增加 mybatis-plus lombok mysql 相关依赖及版本号 <dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</grou…

AIGC ChatGPT 4 Prompt 万能提示词公式

最近大家都在使用ChatGPT来帮助自己完成相应的工作。很多时候大家提出的问题得不到很清晰,很明确的答案。 我们应该怎么样来和ChatGPT进行有效的沟通呢? 例如我们先来问一问ChatGPT: 要获得最准确的回复,请确保遵循以下建议: 明确性:请尽量明确描述您的问题。确保提供足…

AI大模型预先学习笔记一:transformer和fine tune技术介绍

一、商业观点&#xff1a;企业借助大模型获得业务增长可能 二、底层原理&#xff1a;transformer 1&#xff09;备注 ①下面每个步骤都是自回归的过程&#xff08;aotu-regressive&#xff09;&#xff1a;已输出内容的每个字作为输入&#xff0c;一起生成下一个字 ②合起来就…

Android中的SPI实现

Android中的SPI实现 SPI是JVM世界中的标准API&#xff0c;但在Android应用程序中并不常用。然而&#xff0c;它可以非常有用地实现插件架构。让我们探讨一下如何在Android中利用SPI。 问题 在Android中&#xff0c;不同的提供者为推送功能提供服务&#xff0c;而在大型项目中…

使用micro-app将现有项目改造成微前端,对现有项目实现增量升级

使用micro-app将现有项目改造成微前端&#xff0c;对现有项目实现增量升级 基座应用 1、安装依赖 npm i micro-zoe/micro-app --save2、在入口引入 //main.js import microApp from micro-zoe/micro-appnew Vue({ }) //在new Vue 下面执行 microApp.start()3、新增一个vue页…

Nacos和Eureka比较、统一配置管理、Nacos热更新、多环境配置共享、Nacos集群搭建步骤

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Nacos和eureka的对比二、统一配置管理二、Nacos热更新方式一方式二 三、多环境配置共享四、Nacos集群搭建步骤&#xff08;黑马springCloud的p29&#xff0…

SpringCloud 源码系列之全局 Fegin 日志收集(okHttpClient、httpClient)

SpringCloud 源码系列之全局 Fegin 日志收集&#xff08;okHttpClient、httpClient&#xff09;目录 HttpClient 全局日志收集思路切换成HttpClient验证配置效果HttpClient 全局日志收集源码分析看源码顺带产物okHttpClient 全局日志收集总结 接上文SpringCloud OpenFegin 底层…

Python爬虫---scrapy shell 调试

Scrapy shell是Scrapy提供的一个交互式shell工具&#xff0c;它可以帮助我们进行爬虫的开发和调试。可以使用它来测试xpath或css表达式&#xff0c;查看它们是如何工作的&#xff0c;以及它们从你试图抓取的网页中提取的数据。它允许你在编写spider时交互地测试表达式&#xff…

【QT】自定义对话框及其调用

目录 1 对话框的不同调用方式 2 对话框QWDialogSize的创建和使用 3 对话框QWDialogHeaders的创建和使用 4 对话框QWDialogLocate的创建与使用 5 利用信号与槽实现交互操作 1 对话框的不同调用方式 在一个应用程序设计中&#xff0c;为了实现一些特定的功能&#xff0c;必须设计…

UI设计中插画赏析和产品色彩分析

插画赏析&#xff1a; 1. 插画是设计的原创性和艺术性的基础 无论是印刷品、品牌设计还是UI界面&#xff0c;更加风格化的插画能够将不同的风格和创意加入其中&#xff0c;在激烈的竞争中更容易因此脱颖而出。留下用户才有转化。 2. 插画是视觉触发器&#xff0c;瞬间传达大量…

13 | 使用代理ip爬取安居客房源信息

这是一个简单的Python爬虫代码,用于从安居客网站爬取房地产信息。该爬虫使用了代理IP来绕过可能的封禁,并提供了一些基本的信息抽取功能。 如果访问过多,那么可能出现了验证码 对此,最好的方法就是换ip。 使用代理IP的主要目的是保护爬虫的稳定性和隐私。以下是一些常见的原…

8.临床预测模型验证——交叉验证/Bootstrap法

基本概念 交叉验证&#xff1a; 将一定比例的数据挑选出来作为训练集&#xff0c;将其余未选中的样本作为测试集&#xff0c;先在训练集中构建模型&#xff0c;再在测试集中做预测。 内部验证&#xff1a;手动将样本随机分为训练集和测试集&#xff0c;先在训练集中构建模型…

世邦通信 SPON IP网络对讲广播系统getzoneterminaldata.php 未授权访问

产品介绍 世邦通信SPON IP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。 漏洞描述 spon IP网络对讲广播系统getuserdata.php存在未授权访问漏洞&#xff0c;攻击者可通过该漏洞获取后台敏感数据。 资…

解决kali beef启动失败解问题

只限于出现这个提示的时候使用 卸载 ruby apt remove ruby 卸载 beef apt remove beef-xss 重新安装ruby apt-get install ruby apt-get install ruby-dev libpcap-dev gem install eventmachine 重新安装beef apt-get install beef-xss 弄完以上步骤如果还是不行就重启kali再试…

现代雷达车载应用——第3章 MIMO雷达技术 3.4节 自动驾驶使用的高分辨成像雷达

经典著作&#xff0c;值得一读&#xff0c;英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 3.4 自动驾驶使用的高分辨成像雷达 如今&#xff0c;许多专为ADAS功能设计的汽车雷达收发器&#xff0c;如NXP半导体的MR3003和德州仪器的AWR2243&…

力扣hot100 打家劫舍 DP 滚动数组

Problem: 198. 打家劫舍 文章目录 思路复杂度&#x1f496; Code&#x1f496; DP空间优化版 思路 &#x1f468;‍&#x1f3eb; 参考地址 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n) &#x1f496; Code class Solution {public static …

七、Qt 信号和槽

在QT4以上的版本&#xff0c;在窗体上用可以通过选中控件&#xff0c;然后点击鼠标右键单击按钮&#xff0c;选择“转到槽”。可以自动创建信号和槽。 选择clicked(),并点击 ok Qt Creator会给头文件和代码文件自动添加 这个按钮的单击事件&#xff08;信号和槽&#xff09;。 …

【征服redis5】redis的Redisson客户端

目录 1 Redisson介绍 2. 与其他Java Redis客户端的比较 3.基本的配置与连接池 3.1 依赖和SDK 3.2 配置内容解析 4 实战案例&#xff1a;优雅的让Hash的某个Field过期 5 Redisson的强大功能 1 Redisson介绍 Redisson 最初由 GitHub 用户 “mrniko” 创建&#xff0c;并在…

蓝桥杯练习题(九)

&#x1f4d1;前言 本文主要是【算法】——蓝桥杯练习题&#xff08;九&#xff09;的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 …