大数跨境
0
0

答读者问:如何用R语言ggplot2画抖动散点图加分组拟合线

答读者问:如何用R语言ggplot2画抖动散点图加分组拟合线 小明的数据分析笔记本
2023-05-13
0

有公众号读者问到下面的图怎么用R语言实现,今天的推文我们介绍一下如何用R语言的ggplot2实现下图

image.png

基本的形式就是抖动散点图再加上分组的拟合曲线,论文中具体用到的是什么数据我没有仔细看,这里我就用之前推文中的gwas数据来做演示

部分示例数据截图

image.png

每条染色体随机选了500个点,最后一列是给每个点一个分组

首先是抖动散点图

library(ggplot2)
dat<-read_delim("data/20230513/20230513.txt",
                col_names = TRUE,
                delim = "\t")

ggplot(data = dat,aes(x=CHR,y=P))+
  geom_jitter(aes(color=group),
              width = 0.2)
image.png

添加拟合曲线

ggplot()+
  geom_jitter(data = dat,
              aes(x=CHR,y=P,color=group),
              width = 0.2)+
  geom_smooth(data=dat,
              aes(x=CHR,y=P,
                  group=group,
                  color=group,
                  fill=group,
                  lty=group),
              method = "lm")+
  theme_bw()+
  theme(panel.grid = element_blank(),
        legend.position = "top",
        legend.background = element_rect(color="black"))+
  scale_y_continuous(expand = expansion(mult = c(0,0)))
image.png

如果像论文中那样有很多个图需要组合到一起,就借助patchwork这个R包

ggplot()+
  geom_jitter(data = dat,
              aes(x=CHR,y=P,color=group),
              width = 0.2)+
  geom_smooth(data=dat,
              aes(x=CHR,y=P,
                  group=group,
                  color=group,
                  fill=group,
                  lty=group),
              method = "lm")+
  theme_bw()+
  theme(panel.grid = element_blank(),
        legend.position = "top",
        legend.background = element_rect(color="black"))+
  scale_y_continuous(expand = expansion(mult = c(0,0))) -> p1

ggplot()+
  geom_jitter(data = dat,
              aes(x=CHR,y=P,color=group),
              width = 0.2)+
  geom_smooth(data=dat,
              aes(x=CHR,y=P,
                  group=group,
                  color=group,
                  fill=group,
                  lty=group),
              method = "lm")+
  theme_bw()+
  theme(panel.grid = element_blank(),
        legend.position = "top",
        legend.background = element_rect(color="black"))+
  scale_y_continuous(expand = expansion(mult = c(0,0))) +
  scale_fill_manual(values = c("#220050""#b30059"))+
  scale_color_manual(values = c("#220050""#b30059")) -> p2

library(patchwork)

p1+p2
image.png

推文记录的是自己的学习笔记,内容可能会存在错误,请大家批判着看,欢迎大家指出其中的错误

示例数据和代码可以给推文点赞,然后点击在看,最后留言获取

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!


【声明】内容源于网络
0
0
小明的数据分析笔记本
分享R语言和python在生物信息领域做数据分析和数据可视化的简单小例子;偶尔会分享一些组学数据处理相关的内容
内容 971
粉丝 0
小明的数据分析笔记本 分享R语言和python在生物信息领域做数据分析和数据可视化的简单小例子;偶尔会分享一些组学数据处理相关的内容
总阅读218
粉丝0
内容971