大数跨境
0
0

[会员专享]ggplot2构建图层注释拟合曲线

[会员专享]ggplot2构建图层注释拟合曲线 R语言数据分析指南
2023-03-28
2

欢迎关注R语言数据分析指南

最近有观众老爷询问如何自定义给散点图添加拟合曲线并添加R值,P值;对于这个问题ggpmisc包可以很方便的解决其问题,但是由于对方需要一些特殊的定义如将P值转换为星号,「基于此小编写了一个图层函数来解决这个问题」,并且还可以自定义每一条拟合曲线的注释信息位置。下面来具体看看「图层脚本代码已经上传2023VIP群,加群的观众老爷请自行下载」

有需要学习个性化数据可视化的朋友,欢迎到小编的「淘宝店铺」 「R语言数据分析指南」购买「2023年度会员」 初始价格99元,内容主要包括各种「高分论文的图表分析复现以及一些个性化图表的绘制」均包含数据+代码;按照往年数据小编年产出约在150+以上

购买后微信发小编订单截图即邀请进新的会员交流群,小编的文档为按年售卖,只包含当年度的「除系列课程外」的文档,有需要往年文档的朋友也可下单购买,需要了解更多信息的朋友欢迎交流咨询,「添加小编微信请备注,以提高沟通效率」

加载R包

library(tidyverse)
library(gapminder)
library(ggsci)
library(ggpmisc)
library(patchwork)

示例数据

data <- gapminder %>% filter(!continent %in% c("Oceania","Americas"),year ==1987)

散点图+拟合曲线

p1 <- data %>% ggplot(aes(gdpPercap,lifeExp,color=continent))+
  geom_point(size=2.5,aes(color=continent))+
  geom_smooth(aes(color=continent),method = 'lm', se = TRUE, show.legend=FALSE)+
  facet_wrap(.~year,scales="free_x",nrow=2,ncol=3)+
  scale_color_npg()+
  stat_poly_eq(method = 'lm',
               aes(label=paste(after_stat(rr.label),
                               after_stat(p.value.label),sep = "*\", \"*")),
               size=3)+
  labs(x=NULL,y=NULL)+
  theme_bw()+
  theme(axis.text=element_text(colour='black',size=9),
        legend.position ="non")

可以看到使用「stat_poly_eq」很轻松的添加上了R值,P值;但是我们的需求是将P值转换为星号,并且有时绘图时注释信息的位置不合适,若能自由定义每一个注释信息那应该更加方便,下面来介绍解决方案。

定义位置信息

label_positions <- data.frame(
  group = c("Africa""Asia""Europe"),
  x = c(02000020000),
  y = c(805356)
)

# 定义颜色
label_colors <- c("Africa" = "#E64B35""Asia" = "#4DBBD5""Europe" = "#00A087")

加载图层函数

source("geom_fit.R")

自定义添加拟合曲线

p2 <- ggplot(data,aes(x = gdpPercap, y = lifeExp, colour = continent)) +
  geom_point()+
  facet_wrap(.~year,scales="free_x",nrow=2,ncol=3)+
  scale_color_manual(values =c("#E64B35""#4DBBD5""#00A087""#3C5488"))+
  geom_fit(data,"gdpPercap""lifeExp""continent",
           label_positions,label_colors,label_size = 3.5,
           digits = 3, se = T,r_square=T)+   
  labs(x=NULL,y=NULL)+
  theme_bw()+
  theme(axis.text = element_text(color="black"),
        legend.text = element_text(color="black"),
        legend.key = element_blank(),
        legend.spacing.x = unit(0,"cm"))

r_square=T 表示添加R2值,se=T 表示展示置信区间

digits=3 保留三位小数;其余分别为定义文本大小,颜色,位置信息等。

拼图

p1+p2

本节介绍到此结束,喜欢的观众老爷欢迎分享转发。有学习需求者欢迎到小编「淘宝店铺 R语言数据分析指南」 购买小编2023年的VIP文档,已有不少朋友学以至用用到了论文当中,「加小编微信请备注信息及来意,无需要请勿扰」

小编微信

关注下方公众号下回更新不迷路

往期精彩内容


[会员专享] ggplot2绘制局部放大柱状图


nature microbiology图表复现之简洁版热图


[会员专享] ggplot2绘制个性化注释哑铃图


[会员专享] nature communications图表复现之个性化地图绘制


[会员专享]ggplot2高度自定义绘制游泳图


[会员专享] R优雅绘制组合版circos图


[会员专享] nature biotechnology图表复现高端个性化组合图


[会员专享] ggplot2优雅绘制分布棒棒糖图


[会员专享] circlize绘制复杂基因组图


[会员专享] imeta图表复现之相关性组合热图


[会员专享] NC图表复现之cirzlize绘制基因组图


[会员专享] NC图表复现之华夫热图


[会员专享] 再谈ggplot2绘制森林图


【声明】内容源于网络
0
0
R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
内容 1180
粉丝 0
R语言数据分析指南 R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
总阅读222
粉丝0
内容1.2k