当前位置: 首页 > news >正文

科研学习|可视化——相关性结果的可视化

一、相关性分析介绍

相关性分析是指研究两种或者两种以上的变量之间相关关系的统计分析方法,一般分析步骤为:

  • 1)判断变量间是否存在关联;
  • 2)分析关联关系(线性/非线性)、关联方向(正相关/负相关)、关联数量(单相关/复相关/偏相关)和关联强度(显著相关/高度相关/中度相关/弱相关)等关联特征。

常用于度量两个或多个变量之间相关程度的指标有:

如何把这些关联特征表达得更易于理解,那就需要借助将相关性分析结果可视化的方法了。

在平时的论文阅读中我们经常看到有关相关性分析的内容,作者们根据自己的表达需求,也向我们展示了五花八门的绘图样式,比如:散点图、拟合线、相关矩阵(热力图)、相关性空间分布图等。接下来详细向大家介绍这些图表的特点。

二、散点图

一般情况下我们可以通过散点图来检测和了解变量间的关系。如果变量之间存在某种关联,那么数据点就会在图上呈现某种趋势。在某些情况下(如样本点较少),可能会出现聚集趋势不明显的问题,这时我们可以借助线性拟合而成的“趋势线”来辅助分析。

如下图a中,利用散点图展现了SSP126、SSP245、SSP370和SSP585排放情景下未来降水增长率与未来气温增长率之间的约束关系。由于单个情景下的散点数量较少,且多个情景的散点放置于同一张图中进行比较,散点的聚集趋势难以肉眼捕捉,因此该图对各个场景下的散点进行线性拟合,展现出散点的分布趋势线,便于读者更为直观地解读。

  1. 这类散点图可借助Python实现,可参考:“Python-matplotlib 学术散点图 EE 统计及绘制”
  2. 也可以借助R语言实现,可参考:“R-ggplot2 学术散点图绘制”

三、散点密度图

若需对数据量很大的变量相关性进行可视化,可考虑在散点图的基础上添加热力图元素,即通过将数据计数映射到颜色,来表现数据的分布情况

下图为无云日GRSAD模拟的逐月湖泊面积与另一个数据集的6715个湖泊逐月面积的比较。图a显示了两个变量之间分布的密集程度,并通过添加辅助线的方式,在图中显示相应点对应的拟合效果(即R2 — 决定系数,相关系数的平方)。

  1. 使用Matlab绘制散点密度图,可参考:“如何使用Matlab绘制hist2d/密度散点图” — 
  2. 还可通过R语言绘制,可参考:“Density 2d” — https://r-graph-gallery.com/2d-

四、相关性空间分布图

当需要在流域、全国、甚至全球这样的大空间尺度上进行相关性分析时,简单的散点图+拟合线难以表达出相关性的空间变异性。此时,在每个网格单元上计算变量之间的相关系数,并绘制其空间分布图,会是一个很好的选择。

例如,下图展示了1982-2015年北纬30°以上的地区植被生长与水资源可用性指数之间相关性的空间分布及相应的统计值。图中的黑色原点表示该点所在计算单元的相关系数通过了显著性检验(p<0.05)。

  1. 可通过Matlab计算栅格数据相关性及其显著性(M-K检验),参考:“【Matlab】栅格数据相关分析及显著性检验”

五、相关性矩阵图

相关性矩阵图的表达优势在于单个图上丰富的颜色变化可直观反映数据信息,同时,矩阵上还可以同时显示对应的p-value数值,添加其他图形元素等,在一张图中展现出多个变量间的关联方向、关联数量和关联强度等关联特征。

如下图的图(a)和图(b)分别利用了相关性矩阵图来验证策略a和a+下增强回归树(BRT)模型在时间尺度上的性能。该矩阵中的绿色色块越多且越深,则说明该策略下的训练数据和测试数据的相关性越高;反之,深棕色色块越多且越深,则说明该策略下的训练数据和测试数据的相关性越低。

相关性矩阵图除了上图的表达方式外,还可根据自己的需求对图的颜色、图例、数值标签等特征进行调整,一般可以通过R语言的corrplot包、corrgram包、GGally包、ggcorrplot包等实现,参考:

“超多类别!这个相关性矩阵绘制工具绝了!”

“corrplot包可视化相关性矩阵的详细教程”

六、成对矩阵图

成对矩阵图融合了散点图、关系拟合线、概率分布图以及相关系数值。能将图和表格数据结合起来,真正做到一图胜千言!适用于多变量相关性分析的可视化。

成对矩阵图可通过R语言的ggpair函数实现方法,参考:

“Pairs plot with ggpairs” — https://r-charts.com/correlatio

相关文章:

科研学习|可视化——相关性结果的可视化

一、相关性分析介绍 相关性分析是指研究两种或者两种以上的变量之间相关关系的统计分析方法&#xff0c;一般分析步骤为&#xff1a; 1&#xff09;判断变量间是否存在关联&#xff1b;2&#xff09;分析关联关系&#xff08;线性/非线性&#xff09;、关联方向&#xff08;正相…...

MapReduce过程解析

一、Map过程解析 Read阶段&#xff1a;MapTask通过用户编写的RecordReader&#xff0c;从输入的InputSplit中解析出一个个key/value。Map阶段&#xff1a;将解析出的key/value交给用户编写的Map()函数处理&#xff0c;并产生一系列的key/value。Collect阶段&#xff1a;在用户编…...

速看!这8道嵌入式面试题你都会吗?

大家好&#xff0c;我是知微&#xff01; 正逢求职季&#xff0c;分享一些嵌入式面试当中经常会遇到的题目&#xff0c;希望这些干货对小伙伴们面试有用哦&#xff01; 1、介绍一下static关键字的作用 在C语言中&#xff0c;static 关键字有几种不同的作用&#xff0c;根据其…...

基于SSM的电影网站(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的电影网站&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringMv…...

SOCKS代理是如何提高网络性能和兼容性的?

SOCKS代理作为一种网络协议中间件&#xff0c;不仅在提升网络隐私和安全性方面发挥着重要作用&#xff0c;也在提高网络性能和兼容性方面有着不容忽视的影响&#x1f680;。本文将深入探讨SOCKS代理如何通过减少网络延迟&#x1f680;、优化数据传输&#x1f504;、提高跨平台兼…...

好菜每回味道不同--建造者模式

1.1 炒菜没放盐 中餐&#xff0c;老板需要每次炒菜&#xff0c;每次炒出来的味道都有可能不同。麦当劳、肯德基这些不过百年的洋快餐却能在有千年饮食文化的中国发展的那么好呢&#xff1f;是因为你不管何时何地在哪里吃味道都一样&#xff0c;而鱼香肉丝在我们中餐却可以吃出上…...

RuoYi-Cloud下载与运行

一、源码下载 若依官网:RuoYi 若依官方网站 鼠标放到"源码地址"上,点击"RuoYi-Cloud 微服务版"。 跳转至Gitee页面,点击"克隆/下载",复制HTTPS链接即可。 源码地址为:https://gitee.com/y_project/RuoYi-Cloud.git 点击复制 打开IDEA,选…...

Vue2.x计算属性

1.计算属性 在Vue 插值表达式内实现一些操作其实非常便利&#xff0c;但如果表达式的逻辑过于复杂&#xff0c;会让插值过于臃肿且难以维护。这时可以考虑使用Vue的计算属性 1.1 不使用计算属性的例子 <!DOCTYPE html> <html><head><meta charset"…...

Vue中使用require.context()自动引入组件和自动生成路由的方法介绍

目录 一、自动引入组件 1、语法 2、使用 2.1、在compoents文件下随便创建index.js文件 2.2、mian.js引入该js 二、自动生成路由 1、示例&#xff1a; 2、使用 2.1、在router文件下随便创建autoRouter.js文件 2.2、在router文件下index.js文件中引入autoRouter.js文件…...

【炒股Zero To Hero】MACD金叉死叉到底是否有效,加上这个指标回报率增加197倍

移动平均收敛散度&#xff08;MACD - Moving Average Convergence Divergence&#xff09;是一种趋势跟踪动量指标&#xff0c;显示了证券价格的两个移动平均之间的关系。它用于识别趋势的方向和强度&#xff0c;属于技术分析中振荡器的一类。 MACD如何衡量股票及其趋势 有两…...

Linux网络名称空间和虚拟机有何区别

在Linux系统中&#xff0c;网络名称空间和虚拟机都是实现资源隔离和虚拟化的技术&#xff0c;但它们在设计理念、实现机制、资源消耗、使用场景等方面存在着显著的区别。本文旨在全方位、系统性地分析这两种技术的区别。&#x1f50d; 1. 设计理念与实现机制 1.1. 网络名称空…...

【UE Niagara】蓝图获取粒子数据

目录 效果 步骤 一、创建粒子 二、创建蓝图接收Niagara参数 效果 步骤 一、创建粒子 1. 新建一个Niagara发射器&#xff0c;使用Empty模板&#xff0c;打开后先添加“Spawn Rate”模块&#xff0c;这里设置粒子生成速率为0.7 在“Initialize Particle”模块中设置粒子颜色…...

更改el-cascade默认的value和label的键值

后端返回的树结构中&#xff0c;label的key不是el-cascade默认的label&#xff0c;我需要改成对应的字段&#xff0c;但是一直没有成功&#xff0c;我也在文档中找到了说明&#xff0c;但是我没注意这是在props中改&#xff0c;导致一直不成功 这是我一开始错误的写法&#xf…...

2024邮件工单系统排行揭晓:出海必备新宠

2024年各大榜单结果纷纷出炉&#xff0c;一起来看看2024十大邮件工单系统最新排行吧&#xff01; 2024十大邮件工单系统 1、Zoho Desk&#xff1b;2、FreshDesk&#xff1b;3、Service Desk Plus&#xff1b;4、Help Scout&#xff1b;5、Helpshift&#xff1b;6、HongDans&am…...

java题目17:以m行n列二维数组为参数进行方法调用,分别计算二维数组各列元素之和,返回并输出计算结果(MethodCalls17)

每日小语 伟大企业的一项特质是“利润之上的追求”。——段永平 思考 方法调用 方法调用是通过在代码中使用方法名和参数列表来实现的。 public class MethodExample {public static void main(String[] args) {// 调用方法add&#xff0c;并传入两个参数int sum add(3, 5…...

Python中Python-docx 包的run介绍

先对run做一个简单地介绍。每个paragraph对象都包含一个run对象的列表。举例&#xff1a; 这是一个简短的段落。 from docx import Document doc Document("1.docx") #上面这段话保存在1.docx中 print("这一段的run个数是&#xff1a;",len(doc.paragr…...

vue2升级到vue3的一些使用注意事项记录(三)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…...

SwiftUI Swift 显示隐藏系统顶部状态栏

Show me the code // // TestHideSystemTopBar.swift // pandabill // // Created by 朱洪苇 on 2024/4/1. //import SwiftUIstruct TestHideSystemTopBar: View {State private var isStatusBarHidden falsevar body: some View {Button {withAnimation {self.isStatusBa…...

PowerJob 分布式任务调度简介

目录 适用场景 设计目标 PowerJob 功能全景 任务调度 工作流 分布式计算 动态容器 什么是动态容器? 使用场景 可维护性和灵活性的完美结合 实时日志&在线运维 PowerJob 系统组件 PowerJob 应用场景 PowerJob 的优势 PowerJob&#xff08;原OhMyScheduler&…...

Java——数组练习

目录 一.数组转字符串 二.数组拷贝 三.求数组中元素的平均值 四.查找数组中指定元素(顺序查找) 五.查找数组中指定元素(二分查找) 六.数组排序(冒泡排序) 七.数组逆序 一.数组转字符串 代码示例&#xff1a; import java.util.Arrays int[] arr {1,2,3,4,5,6}; String…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...