美文网首页R可视化小本本
【R>>barplot】堆叠柱状图+百分比展示

【R>>barplot】堆叠柱状图+百分比展示

作者: 高大石头 | 来源:发表于2021-07-24 16:42 被阅读0次

看文献是经常发现有堆叠柱状图+百分比展示的例子,下面就来复现下这样的图形。下图中的C图。


PMID: 33230435

以IMvigor210免疫治疗队列数据为例:

1.输入数据

输入数据rt是两个因子变量


a <- data.frame(table(rt$risk,rt$BOR_binary))
a<- ddply(a,.(Var1),transform,percent=Freq/sum(Freq)*100) 
a$label = paste0(sprintf("%.1f", a$percent), "%")

备注:ddplyr输入data.frame返回data.frame,在计算百分比时特别好使。

2.开始画图

pvalue <- chisq.test(c(125,24,105,44,ncol=2))$p.value #卡方检验
library(plyr)
ggplot(a,aes(Var1,percent,fill=Var2))+
  geom_bar(stat="identity",position = position_stack())+
  scale_fill_manual(values = c("#DB423E","#008ECA"),label=c("SD/PD","CR/PR"))+
  scale_y_continuous(labels = scales::percent_format(scale = 1))+ #百分比y轴
  labs(x="Risk",y="Percent Weidght",
       fill="")+
  geom_text(aes(label=label),vjust=3,size=6,color="black")+
  annotate(geom = "text",
           cex=6,
           x=1.5, y=105, # 根据自己的数据调节p value的位置
           label=paste0("P ", ifelse(pvalue<0.001, "< 0.001", paste0("= ",round(pvalue,3)))), # 添加P值
           color="black")+
  theme_classic()+
  theme(legend.position = "top",
        legend.text = element_text(size=12),
        axis.text = element_text(size=12),
        axis.title = element_text(size=12))

参考链接:

相关文章

网友评论

    本文标题:【R>>barplot】堆叠柱状图+百分比展示

    本文链接:https://www.haomeiwen.com/subject/bkkvmltx.html