R语言绘制散点密度图ggdentity

使用R语言绘制二维密度图

下图是一张常见的二维核密度散点图,能够清晰直观的反映出数据之间的分布趋势,颜色越红的位置数据越集中分布。今天分享的笔记是在R语言中绘制该图的两种常见方法,提供过程代码。 alt

论文中常见的这种展示两组数据之间分布趋势的图,其实也是一种散点图,只是用不同颜色来映射了点的密度大小,通常是渐变色来展示数据的变化规律。 alt

方法一:ggpointdensity

这个包结合了散点图和密度图的特点,是 ggplot2 的一个扩展,使用户能够创建点密度图,其中点的颜色和大小可以表示数据点在特定区域的局部密度,从而直观地揭示出数据的集中趋势。

安装与使用方法

install.packages("ggpointdensity")
library(ggpointdensity)
library(viridis) # 使用viridis提供的翠绿色标度:scale_fill_viridis()

安装完成后开始绘图,首先生成测试数据

df <- data.frame("x" = rnorm(10000), "y" = rnorm(10000))
> head(df)
           x           y
1  0.2505781  0.05379511
2 -0.2779240  0.75343075
3 -1.7247357  0.24985048
4 -2.0067049 -0.44410484
5 -1.2918083 -0.05027016
6  0.3658382 -0.46777918

如果你有实际数据,也可以按照这种方式进行整理,比如在excel中整理好,分成两列,分别代表横轴和纵轴,然后导入R语言中进行绘图。

ggplot(df)+
    geom_pointdensity(aes(x=x,y=y))

绘图的核心函数geom_pointdensity生成散点密度图,如果直接运行,结果图如下:

alt

看起来配色不太好看,换成青翠渐变色:

ggplot(df)+
    geom_pointdensity(aes(x=x,y=y))+
    scale_color_viridis() +
    theme_bw()

添加scale_color_viridis函数修改配色: alt

方法二:ggdensity

这个包也是属于ggplot2扩展包,用于绘制密度图,效果和刚才差不多,优点是提供geom_hdr函数,功能比较多。

安装与使用方法

install.packages("ggdensity")
if (!requireNamespace("remotes")) install.packages("remotes")
remotes::install_github("jamesotto852/ggdensity")

还是使用刚刚创建的假数据来展示:

p <- ggplot(df, aes(x, y)) + coord_equal()
p1 <- p + geom_density_2d_filled()+
    theme_bw()
p1
alt

这样获得了一张基础布局的密度图,展示的是等高线,geom_density_2d_filled是ggplot2自带的二维填充绘图函数。

p1<-p + geom_hdr()

如果是使用geom_hdr函数的话,作图效果如下所示:

alt

我问还可以修改边缘线,比如让曲线变成圆形布局或者其他布局,也可以按照小方块进行渲染,类似于GPU显卡计算图像,通过统计每个小方块儿里面点的数量来进行颜色映射。

p2<-p + geom_hdr(method = "mvnorm")
alt
p4<-p + geom_hdr(method = "histogram")
alt

以上就是今天分享的密度图小技巧,感谢您的阅读,如果感觉有所帮助,欢迎点赞转发,下期教程分享R语言中绘制动态交互式热图的方法。

参考资料
https://blog.csdn.net/weixin_40575651/article/details/107038516
https://rpkgs.datanovia.com/ggpubr/reference/ggdensity.html
https://github.com/jamesotto852/ggdensity
https://cloud.tencent.com/developer/article/2297184

本文由 mdnice 多平台发布

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

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

相关文章

Java入门学习(1)

常用的CMD命令&#xff1a; 1.盘符名称 冒号 说明&#xff1a;盘符切换&#xff1b; 举例&#xff1a;E:回车&#xff0c;表示切换到E盘。 2.dir 说明&#xff1a;查看当前路径下的内容。 3.cd 说明&#xff1a;进入单级目录。 举例&#xff1a;cd itheima 4.cd.. 说…

上班族必备技能!轻松掌握excel文件如何批量加后缀名方法,提升工作效率!

后缀名是什么 后缀名是帮助人区分文件类型的一种手段&#xff0c;文件后缀名也叫文件扩展名&#xff0c;是用来表示某种文件格式所采用的机制。文件扩展名是加在主文件名后面的&#xff0c;用“.”分隔。不同的软件要求不同的文件格式&#xff0c;后缀名可以帮助用户了解文件是…

可以作为GC.Roots的对象有哪些?

在Java中&#xff0c;GC Roots 是一组特殊的对象&#xff0c;它们被认为是可达的&#xff0c;并且不会被垃圾收集器回收。这些对象包括但不限于以下几种&#xff1a; 虚拟机栈中引用的对象&#xff1a;活跃线程中的本地变量引用的对象&#xff0c;以及正在执行的方法中的参数对…

Python 可视化和数据缺失处理库之missingno使用详解

概要 在数据分析和数据科学的领域中,数据缺失是一个常见的问题。数据缺失可能会导致分析和建模结果的不准确性,因此了解如何处理和可视化缺失数据至关重要。Python Missingno 是一个强大的工具,可以直观地识别和处理数据中的缺失值。本文将详细介绍 Python Missingno 的功能…

从命令提示窗口使用 Visual C++ Toolkit 2003

从命令提示窗口使用 Visual C Toolkit 2003 发布日期 : 12/20/2004 | 更新日期 : 12/20/2004 Brian Johnson MSDN Visual C 内容战略家 适用于&#xff1a; Visual Studio .NET 2003 Microsoft Visual C .NET 2003 Microsoft Visual C Toolkit 2003 摘要&#xff1a;在本文中…

Threejs播放模型自带动画

现在的很多建模软件都可以制作动画效果&#xff0c;甚至可以通过各种动画效果直接做动漫&#xff0c;动漫是模型的一种属性&#xff0c;在threejs中同样可以加载此动画&#xff0c;实现动画效果&#xff0c;如果有的时候在threejs中用代码实现模型动画比较困难或者麻烦&#xf…

MongoDB聚合运算符:$denseRank

$denseRank聚合运算符返回在$setWindowFields阶段分区中文档的排名&#xff0c;排名的顺序由$setWindowFields阶段sortBy的字段值决定。 语法 { $denseRank: { } }$denseRank不需要任何参数。 使用 $rank和$denseRank的不同点在于他们处理排序字段重复值的方式不同&#xf…

嵌入式、开发板 智能音响 OpenHarmony GPT 大模型 智能硬件

一、概述 生活场景的引入: 物联网的快速发展,各种智能设备层出不穷,作为极客,家里早已安上了用 APP 控制的智能灯、智能插座,刚刚安装上的时候,还有新鲜感,久了之后,是不是会有这样的现象: 早上醒来要开灯,需要经过: 迷迷糊糊从床头柜上摸到手机手机用指纹解锁连接无…

3.11 log | 739. 每日温度,

739. 每日温度&#xff0c;496.下一个更大元素 I&#xff0c;503.下一个更大元素II&#xff0c; class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<int> st;vector<int> result(temperatures.size(),0)…

Hadoop学习1:概述、单体搭建、伪分布式搭建

文章目录 概述基础知识Hadoop组件构成Hadoop配置文件 环境准备配置Hadoop配置下载配置环境变量 Hadoop运行模式Standalone Operation&#xff08;本地&#xff09;官方DemoWordCount单词统计Demo Pseudo-Distributed Operation&#xff08;伪分布式模式&#xff09;配置修改启动…

Bootstrap5(display显示、flex布局相关属性、浮动、定位、文本、栅格系统)

类中缀的设置技巧 1.当多个连续品目使用一个样式时&#xff0c;则给最小的设置即可。 比如&#xff1a;大屏以上内边距都是3&#xff1a;p-lh-3 2.超小屏不设置类中缀的样式 比如超小屏内边距时1&#xff0c;小屏内边距时2&#xff0c;中屏及以上内边距是3 p-1 p-sm-2 p-md-3 …

WPF 界面刷新问题 不支持从调度程序线程以外的线程对其 SourceCollection 进行的更改

WPF 界面刷新问题 不支持从调度程序线程以外的线程对其 SourceCollection 进行的更改 问题描述&#xff1a; 在子线程中操作界面控件的数据源出现以下错误&#xff1a;System.NotSupportedException:“该类型的 CollectionView 不支持从调度程序线程以外的线程对其 SourceCo…

【Python】新手入门学习:什么是相对路径?

【Python】新手入门学习&#xff1a;什么是相对路径&#xff1f; &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得…

【Echarts】柱状图上方显示数字以及自定义值,标题和副标题居中,鼠标上显示信息以及自定义信息

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《前端》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握…

linux 环境安装nvm

linux 环境安装nvm 1、安装方式 # 方式1 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 方式2 【推荐】 wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash2、创建nvm命令目录 mkdir -p ~/.nvm3、编…

StringBuilder --java学习笔记

StringBuilder 代表可变字符串对象&#xff0c;相当于是一个容器&#xff0c;它里面装的字符串是可以改变的&#xff0c;就是用来操作字符串的StringBuilder比String更适合做字符串的修改操作&#xff0c;效率会更高&#xff0c;代码也会更简洁 StringBuilder的常用构造器和方…

C++操作树莓派的RTC时钟

概述 RTC实时时钟通常是指一个集成电路&#xff0c;RTC本质上是一个独立的定时器&#xff0c;通常情况下需要外接一个32.768KHZ的晶振和匹配电容&#xff08;10~33pf&#xff09;&#xff0c;由于时间是不停止的&#xff0c;为了满足这一要求&#xff0c;所以RTC实时时钟有两种…

idea2023和历史版本的下载

1.idea中文官网 idea官网历史版本下载(https://www.jetbrains.com.cn/idea/download/other.html)

基于SpringBoot的“学生成绩管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“学生成绩管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面图 管理员功能界面图 学生管理界面图…

蓝桥杯2019年第十届省赛真题-修改数组

查重类题目&#xff0c;想到用标记数组记录是否出现过 但是最坏情况下可能会从头找到小尾巴&#xff0c;时间复杂度O(n2)&#xff0c;数据范围106显然超时 再细看下题目&#xff0c;我们重复进行了寻找是否出现过&#xff0c;干脆把每个元素出现过的次数k记录下来&#xff0c;直…