跟着Nature学作图:R语言ggplot2散点图和柱形图完整示例(Extended Fig3)

简介: 跟着Nature学作图:R语言ggplot2散点图和柱形图完整示例(Extended Fig3)

论文

A saturated map of common genetic variants associated with human height

https://www.nature.com/articles/s41586-022-05275-y

s41586-022-05275-y.pdf

代码没有公开,但是作图数据基本都公开了,争取把每个图都重复一遍

今天的推文重复论文中的extended Figure3

image.png

散点图的部分示例数据

image.png

作图代码

library(readxl)
dat01<-read_excel("extendFig3.xlsx",
                  sheet = "Panel a")
colnames(dat01)<-c("X","Y")
head(dat01)
library(tidyverse)
dat01 %>% 
  mutate(group.info=
           case_when(
             X > 0.8 & Y > 3 ~ "A",
             X > 0.8 & Y < 3 ~ "B",
             TRUE ~ "D"
           )) -> new.dat01

library(ggplot2)
library(ggh4x)
library(latex2exp)
p1<-ggplot(data=new.dat01,aes(x=X,y=Y))+
  geom_point(aes(color=group.info),
             size=3,
             show.legend = FALSE)+
  scale_color_manual(values = c("A"="#83ee81",
                                "B"="#fe6c55",
                                "D"="black"))+
  geom_point(data=new.dat01 %>% filter(group.info!="D"),
             size=1.5)+
  theme_classic()+
  scale_y_continuous(breaks = c(0,3,10,20,30))+
  scale_x_continuous(breaks = seq(0,1,by=0.2))+
  geom_vline(xintercept = 0.8,color="red",
             lty="dashed")+
  geom_hline(yintercept = 3,color="red",
             lty="dashed")+
  guides(x=guide_axis_truncated(trunc_lower = 0,
                                trunc_upper = 1),
         y=guide_axis_truncated(trunc_lower = 0,
                                trunc_upper = 30))+
  labs(x="Expected Sttistical Power for Replication",
       y=TeX(r"(-log${_1}{_0}$\times sign(\beta$_{DISCOVERY}$)\times sign(\beta$_{REPLICATION}$))"))

p1

image.png

柱形图的示例数据

image.png

作图代码

dat02<-read_excel("extendFig3.xlsx",
                  sheet = "Panel b",
                  skip = 1)
dat02 %>% 
  mutate(newCol=letters[1:7]) -> new.dat02
colnames(new.dat02)

ggplot(data=data.frame(x=c("A","B"),
                       y=10),
       aes(x=x,y=y))+
  geom_col(aes(fill=x))+
  scale_fill_manual(values = c("A"="#02178c",
                               "B"="#dba425"),
                    labels=c("A"="Observed",
                             "B"="Expected"))+
  theme(legend.title = element_blank()) -> p2.legend

p2<-ggplot(data=new.dat02,aes(x=newCol,y=Observed))+
  geom_col(fill="#02178c")+
  geom_errorbar(aes(ymin=Observed-`Standard Error of Observed proportion`,
                    ymax=Observed+`Standard Error of Observed proportion`),
                color="#ff6c57",
                width=0.2)+
  geom_segment(aes(x=c(1:7)-0.4,xend=c(1:7)+0.4,
                   y=Expected,yend=Expected),
               color="#daa421")+
  theme_classic()+
  scale_y_continuous(expand = expansion(mult = c(0,0)),
                     breaks = c(0,0.27,0.54,0.8),
                     labels = c("50%","60%","70%","80%"))+
  scale_x_discrete(labels=new.dat02$`Minor Allele Frequency Class`)+
  theme(axis.line.x = element_blank(),
        axis.ticks.x = element_blank(),
        axis.text.x = element_text(angle=90,hjust=1))+
  labs(x="MAF range in Estonian Biobank (EBB)",
       y="Proportion of SNPs with sign-consistent effect\nsizes between discovery and replication")
p2
p2+theme(plot.margin = unit(c(1.5,0.1,0.1,0.1),'cm'))+
  annotation_custom(grob = ggpubr::get_legend(p2.legend),
                    xmin = 1.5,xmax = 1.5,
                    ymin = 0.9,ymax=0.9) -> p2.1
p2.1

image.png

最后是拼图

library(patchwork)

p1+p2.1

image.png

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

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!
相关文章
|
4月前
|
数据可视化 数据挖掘 图形学
R语言基础可视化:使用ggplot2构建精美图形的探索
【8月更文挑战第29天】 `ggplot2`是R语言中一个非常强大的图形构建工具,它基于图形语法提供了一种灵活且直观的方式来创建各种统计图形。通过掌握`ggplot2`的基本用法和美化技巧,你可以轻松地将复杂的数据转化为直观易懂的图形,从而更好地理解和展示你的数据分析结果。希望本文能够为你探索`ggplot2`的世界提供一些帮助和启发。
|
4月前
|
数据可视化
R语言自定义图形:ggplot2中的主题与标签设置
【8月更文挑战第30天】`ggplot2`作为R语言中功能强大的绘图包,其自定义能力让数据可视化变得更加灵活和多样。通过合理使用`theme()`函数和`labs()`函数,以及`geom_text()`和`geom_label()`等几何对象,我们可以轻松创建出既美观又富有表达力的图形。希望本文的介绍能够帮助你更好地掌握`ggplot2`中的主题与标签设置技巧。
|
7月前
|
存储
【视频】R语言中的分布滞后非线性模型(DLNM)与发病率,死亡率和空气污染示例
【视频】R语言中的分布滞后非线性模型(DLNM)与发病率,死亡率和空气污染示例
|
7月前
|
存储 数据可视化 数据挖掘
R语言可视化:ggplot2冲积/桑基图sankey分析大学录取情况、泰坦尼克幸存者数据
R语言可视化:ggplot2冲积/桑基图sankey分析大学录取情况、泰坦尼克幸存者数据
|
7月前
|
编译器 Python Windows
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra
|
7月前
|
算法 数据可视化
R语言社区检测算法可视化网络图:ggplot2绘制igraph对象分析物种相对丰度
R语言社区检测算法可视化网络图:ggplot2绘制igraph对象分析物种相对丰度
|
7月前
r语言ggplot2误差棒图快速指南
r语言ggplot2误差棒图快速指南
|
7月前
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra2
R语言RStan贝叶斯示例:重复试验模型和种群竞争模型Lotka Volterra
|
7月前
|
数据可视化
R语言ggplot2 对Facebook用户数据可视化分析
R语言ggplot2 对Facebook用户数据可视化分析
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。