复现《Cell》图表:柱状图、添加分组注释、legend设置

这次复现一篇Cell文章的图表,原文中提供了部分数据,有部分数据是小编为了作为创造的,大体上和原文是一致的,重点是学习过程。要做到复现图上的每一个元素。原文图片如下:

(Reference:Proteogenomic characterization of pancreatic ductal adenocarcinoma)

我的复现结果如下:

image.png

接下来慢慢盘它:

先做柱状图


setwd('E:/生物信息学/复现Cell柱状图加注释')
A <- read.csv('Tumor.CSV',header = T)

library(ggplot2)
library(ggh4x)
A$cellularity <- ''
A$cellularity[which(A$Tumor.cellularity >=15)] = '>=15,SP'
A$cellularity[which(A$Tumor.cellularity <15)] = '<15,LP'


p <- ggplot(A, aes(x=reorder(case_id,-KRAS_VAF),y=KRAS_VAF))+
  geom_bar(aes(fill=group), stat = 'identity')+
  labs(x='Sample ID',y='KRAS VAF')+
  scale_fill_manual(values = c("#309342","#376CAE","#1CA4BF","#D5C643",
                               "#5FBC93","#D03B23","#DC7944","#5DB75E"))+
  theme_bw()+
  scale_y_continuous(expand = c(0,0))+
  theme(panel.grid = element_blank(),
        legend.position = c(0.95, 0.7),
        legend.title = element_blank(),
        axis.text.x = element_text(colour = "black", size=6,
                                   angle = 90, hjust = -3, vjust = 0.1),
        axis.text.y = element_text(colour = 'black',size = 8),
        axis.title.x = element_text(margin = 
                         margin(0.5,1,0,1,'cm')))+
  geom_hline(yintercept = 0.075, linetype=2, cex=0.5)+
  annotate(geom = 'text', label="VAF=0.075", x=102, y=0.12)+
  geom_segment(aes(x = 102, y = 0.11, xend = 102, yend = 0.075),
               arrow = arrow(length = unit(0.2, "cm")))

添加分组注释

B <- A
B <- B[order(-B$KRAS_VAF),]
library(forcats)
B$case_id <- as.factor(B$case_id)
B$case_id <- fct_inorder(B$case_id)

Tumor.cellularity <- B$case_id %>% as.data.frame() %>%
  mutate(group=B$cellularity) %>%
  mutate(p="")%>%
  ggplot(aes(p,.,fill=group))+
  geom_tile() + 
  scale_y_discrete(position="right") +
  scale_fill_manual(values = c("#1084A4",
                               "#8D4873"))+
  theme_minimal()+xlab(NULL) + ylab(NULL) +
  theme(axis.text.y = element_blank(),
        axis.text.x =element_blank(),
        axis.ticks.x = element_blank(),
        legend.position = 'none')+
  labs(fill = "Tumor.cellularity")+
  coord_flip()


bottom <- ggplotGrob(Tumor.cellularity)
p+annotation_custom(bottom,xmin=-1,xmax=141.5,ymin=-0.03,ymax=0.01)

image.png

虽然分组注释是强行加上去的(因为没有想到好的办法,直接在坐标轴下面添加,小伙伴有好办法可私信),也有一个遗憾,就是分组的legend需要后期手动添加,但是整体复现了这个结果,还是不错的,整个图还是能够学到不少东西的。注释代码及数据已上传群文件!

如果觉得分享的只是有用,点个赞。更多精彩可关注我的公众好《KS科研分享与服务》!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值