跟着Nature Genetics学作图:R语言ggplot2散点图及多图共享图例

论文

Plasma proteome analyses in individuals of European and African ancestry identify cis-pQTLs and models for proteome-wide association studies

https://www.nature.com/articles/s41588-022-01051-w

本地pdf s41588-022-01051-w.pdf

代码链接

https://zenodo.org/record/6332981#.YroV0nZBzic

https://github.com/Jingning-Zhang/PlasmaProtein/tree/v1.2

今天的推文重复一下论文中的Extended Data Fig. 2

image.png

读取数据

library(readxl)
eqtls <- read_excel("data/20220627/ExtendedFig2.xlsx", 
                    sheet = "dat")
eqtls.2 <- read_excel("data/20220627/ExtendedFig2.xlsx", 
                      sheet = "leg")

第一个小图a

library(latex2exp)
library(ggplot2)
im1 <- ggplot(eqtls, aes(x = 1:49,y=V2, size=sample)) +
  geom_point(alpha=1,color = eqtls$cls)+  
  theme(plot.title = element_text(hjust = 0.5,size = 7),
        axis.title.x = element_text(size = 6),
        axis.title.y = element_text(size = 6),
        panel.background = element_blank(),
        axis.text.x = element_blank(),
        axis.line = element_line(color = "black",size = 0.5),
        legend.text = element_text(size = 6),
        legend.title = element_text(size = 6),
        axis.text = element_text(size = 6)) +
  labs(title = "Overlap with eQTLs (GTEx V8)", x="Tissues",y="Proportion")+
  scale_x_continuous(breaks = NULL)+
  coord_cartesian(ylim = c(0,0.5)) + scale_fill_manual(values = as.character(eqtls$cls))
im1
image.png

这里新接触到一个R包latex2exp,用来添加比较复杂的文本公式之类的很方便,需要好好学习一下

第二个小图b

im2 <- ggplot(eqtls, aes(x = 1:49,y=V3, size=sample)) +
  geom_point(alpha=1,color = eqtls$cls)+ 
  theme(plot.title = element_text(hjust = 0.5,size = 7),
        axis.title.x = element_text(size = 6),
        axis.title.y = element_text(size = 6),
        panel.background = element_blank(),
        axis.text.x = element_blank(),
        axis.line = element_line(color = "black",size = 0.5),
        legend.text = element_text(size = 6),
        legend.title = element_text(size = 6),
        axis.text = element_text(size = 6)) +
  labs(title = "Colocalization with eQTLs (GTEx V8)", x="Tissues",y="Proportion")+
  scale_x_continuous(breaks = NULL)+
  coord_cartesian(ylim = c(0,0.25)) + 
  scale_fill_manual(values = as.character(eqtls$cls))

im2

image.png

贡献的图例

im3 <- ggplot(eqtls.2, aes(x = 1:49,y = V3)) + 
  geom_point(aes(color = tissues)) +
  scale_color_manual(name = "GTEx V8 tissues",
                     values = myColors) +
  theme(
    legend.key = element_blank(),
    legend.key.size = unit(2, "mm"),
    panel.border = element_blank(),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(), 
    title = element_text(size = 7),
    text = element_text(size = 6)
  ) +
  guides(color=guide_legend(ncol = 1))
im3
library(ggpubr)
pm3 <- as_ggplot(get_legend(im3))
pm3

image.png

这里新接触到一个知识点是 ggplot2作图的图例可以单独提取出来然后和其他图去拼图

最后是拼图

p <- ggarrange(ggarrange(im1, im2,
                         nrow = 2, labels = c("a", "b"),
                         heights = c(0.5,0.5)),
               pm3,
               ncol = 2, 
               labels = c(NA, NA),
               widths = c(0.7,0.3)
)
p

image.png

示例数据和代码可以自己到论文中获取,或者给本篇推文点赞,点击在看,然后留言获取

欢迎大家关注我的公众号

小明的数据分析笔记本

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

你可能感兴趣的:(跟着Nature Genetics学作图:R语言ggplot2散点图及多图共享图例)