最近看到如下一张图感觉不错,今天来复现一下由于没有合适的数据,大家将就着看;有需要的小伙伴欢迎咨询
- 废话不多说先来看图
可以看到上图,主要采用了分面,同时将常见的箱线图转化为了点图+误差线,同时添加了阴影并使用ggh4x做了分面的注释;分析到此那我们就开始画图实操
加载R包
library(tidyverse)
library(ggsci)
导入数据
df <- read_csv("data.csv")
数据清洗
p <- read_tsv("group.xls") %>% left_join(.,df,by="sample") %>%
unite(.,col="group",group1:group2,sep="_",remove = T,na.rm = F) %>%
pivot_longer(Shannon.Wiener:pielou) %>% select(-sample)
数据可视化
p %>% ggplot(aes(x = group, y =value,fill =group,group=1)) +
stat_summary(fun.data="mean_cl_normal",geom="errorbar",width=0.2) +
stat_summary(fun = "mean",geom = "point",size=5,pch=21)+
stat_summary(fun = "mean", geom = "line",size=0.5)+
annotate("rect",xmin="Control_A",xmax="Control_B",ymin=-Inf,ymax=Inf,alpha=0.3,fill="grey")+
facet_wrap(.~name,scales = "free",labeller = label_wrap_gen(),nrow = 2)+
scale_fill_npg()+
theme_test()+
theme(panel.spacing.x = unit(0.2,"cm"),
panel.spacing.y = unit(0.1, "cm"),
axis.title = element_blank(),
strip.text.x = element_text(size=9,color="black"),
axis.text = element_text(color="black"),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
legend.text = element_text(color="black",size=9),
legend.title=element_blank(),
legend.spacing.x=unit(0.1,'cm'),
legend.key=element_blank(),
legend.key.width=unit(0.4,'cm'),
legend.key.height=unit(0.4,'cm'),
legend.position = "top",
plot.margin=unit(c(0.3,0.3,0.3,0.3),units=,"cm"))+
guides(fill = guide_legend(direction = "horizontal"))+
guides(fill=guide_legend(nrow=1, byrow=TRUE))
大概绘制了一下,主要内容就是以上代码,喜欢的小伙伴关注我的公众号R语言数据分析指南*
网友评论