plot

ggplot2优雅的绘制点图

2021-12-30  本文已影响0人  R语言数据分析指南

最近看到如下一张图感觉不错,今天来复现一下由于没有合适的数据,大家将就着看;有需要的小伙伴欢迎咨询

可以看到上图,主要采用了分面,同时将常见的箱线图转化为了点图+误差线,同时添加了阴影并使用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语言数据分析指南*

上一篇下一篇

猜你喜欢

热点阅读