小tips: 如何画简单的correlation图并调整图距

记录简单的画correlation代码。初衷是每次都需要找这个边距到底是哪个代码,特此记录。

目的:我们有一组需要添加的r和pvalue,然后我们想把它加到图里然后并且调整图的边距。

测试数据构建以及r和p给定以及对其进行四舍五入规定小数点以及科学计数法的转换。

library(tidyverse)library(ggpubr)r <- c(0.4321 %>% round(., digits = 3), 0.6543 %>% round(., digits = 3))p_values <- c(0.987654e-34, 0.287654e-54)p_values <- scales::scientific(p_values, digits = 3)index <- c("col1", "col2")fake_table <- tibble(col1 = runif(100, 0.34,0.88), col2 = runif(100, 0.77, 0.94), percentage = runif(100, 0.24, 0.77))

画图

p <- list()
for (x in c("col1", "col2")){r_target <- r[which(index == x)]p_target <- p_values[which(index == x)]label <- paste0("Correlation, ","r", " = ", r_target, ", ", "p = ", p_target)label <- paste0("R", " = ", r_target, ", ", "p = ", p_target)p[[x]] <- ggscatter(fake_table, x = x, y = "percentage",add = "reg.line", conf.int = TRUE, add.params = list(color = "red"),cor.coef = FALSE, cor.method = "spearman", cor.coef.size = 8,xlab = x, ylab = "my y lab") +annotate("text", x = 0.55*max(fake_table[,x]), y = 0.98*max(fake_table[,"percentage"]),label = label,color = "black", size = 6) +theme(text = element_text(size=30),axis.line = element_line(colour = "black"),#panel.grid.major = element_blank(),panel.grid.minor = element_blank(),panel.border = element_blank(),panel.background = element_blank(),axis.title.x = element_text(margin = margin(t = 20, r = 0, b = 0, l = 0)),plot.margin = margin(1,1,1.5,1.2, "cm"))
}

样图 

其中annotate是想要加的r和p的位置坐标,这里是以0.55的max(x)还有0.98的max(y)加的,可以随意调整。然后grid和border都设为没有。

axis.title.x = element_text(margin = margin(t = 20, r = 0, b = 0, l = 0)) 这里调整的是x 坐标的title和x轴的距离 

plot.margin = margin(1,1,1.5,1.2, "cm")这里调整的是图和画布的边缘距离。

p[["col1"]] 示例

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

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

相关文章

【JVM从入门到实战】(五)类加载器

一、什么是类加载器 类加载器&#xff08;ClassLoader&#xff09;是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术。 类加载器只参与加载过程中的字节码获取并加载到内存这一部分。 二、jdk8及之前的版本 类加载器分为三类&#xff1a; 启动类加载器-加载Ja…

Git远程操作

目录 1.远程操作 1.1理解分布式版本控制系统 1.2远程仓库. 1.2.1新建远程仓库 1.2.2克隆远程仓库 1.2.3向远程仓库推送 1.2.4拉取远程仓库 1.3配置Git 1.3.1忽略特殊文件 1.3.2给命令配置别名 2.标签管理 2.1理解标签 2.2创建标签 2.3操作标签 1.远程操作 1.1理…

python:五种算法(SSA、WOA、GWO、PSO、GA)求解23个测试函数(python代码)

一、五种算法简介 1、麻雀搜索算法SSA 2、鲸鱼优化算法WOA 3、灰狼优化算法GWO 4、粒子群优化算法PSO 5、遗传算法GA 二、5种算法求解23个函数 &#xff08;1&#xff09;23个函数简介 参考文献&#xff1a; [1] Yao X, Liu Y, Lin G M. Evolutionary programming made…

kafka配置多个消费者groupid kafka多个消费者消费同一个partition(java)

目录 1- 单播模式&#xff0c;只有一个消费者组2- 广播模式&#xff0c;多个消费者组3- Java实践 kafka是由Apache软件基金会开发的一个开源流处理平台。kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据。 kafka中partition…

bind、call、apply 区别?

作用 call、apply、bind作用是改变函数执行时的上下文&#xff0c;简而言之就是改变函数运行时的this指向 那么什么情况下需要改变this的指向呢&#xff1f; 下面举个例子 var name "lucy"; var obj {name: "martin",say: function () {console.log(…

深入理解 SVG:开启向量图形的大门(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

nodejs+vue+微信小程序+python+PHP社区居民信息管理及数据分析系统-计算机毕业设计推荐django

社区居民信息管理及数据分析与可视化系统可以为社区领导提供业务管理功能&#xff0c;社区领导也就是系统的管理员&#xff0c;具有社区居民管理、流入人口管理、流出人口管理、社区信息管理、流出协同管理、公告管理的权限&#xff0c; 本文先充分调查社区居民信息管理及数据分…

计网 - LVS 是如何直接基于 IP 层进行负载平衡调度

文章目录 模型LVS的工作机制初探LVS的负载均衡机制初探 模型 大致来说&#xff0c;可以这么理解&#xff08;只是帮助我们理解&#xff0c;实际上肯定会有点出入&#xff09;&#xff0c;对于我们的 PC 机来说&#xff0c;物理层可以看成网卡&#xff0c;数据链路层可以看成网卡…

【ARM Trace32(劳特巴赫) 使用介绍 13 -- Trace32 断点 Break 命令篇】

文章目录 1. Break.Set1.1 TRACE32 Break1.1.1 Break命令控制CPU的暂停1.2 Break.Set 设置断点1.2.1 Trace32 程序断点1.2.2 读写断点1.2.2.1 变量被改写为特定值触发halt1.2.2.2 设定非值触发halt1.2.2.4 变量被特定函数改写触发halt1.2.3 使用C/C++语法设置断点条件1.2.4 使用…

机器学习---Boosting

1. Boosting算法 Boosting思想源于三个臭皮匠&#xff0c;胜过诸葛亮。找到许多粗略的经验法则比找到一个单一的、高度预 测的规则要容易得多&#xff0c;也更有效。 预测明天是晴是雨&#xff1f;传统观念&#xff1a;依赖于专家系统&#xff08;A perfect Expert) 以“人无…

【SpringBoot篇】详解基于Redis实现短信登录的操作

文章目录 &#x1f970;前言&#x1f6f8;StringRedisTemplate&#x1f339;使用StringRedisTemplate⭐常用的方法 &#x1f6f8;为什么我们要使用Redis代替Session进行登录操作&#x1f386;具体使用✨编写拦截器✨配置拦截器&#x1f33a;基于Redis实现发送手机验证码操作&am…

matlab 最小二乘拟合平面(拉格朗日乘子法)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。博客长期更新,爬虫自重。 一、算法原理 设拟合出的平面方程为: a x + b y &#