一、前言

今天的教程是看到那些优秀大佬的分享,自己截取需要的一部分,作为自己笔记进行分享。对于小杜的分享,绝大部分都是结合自己的需求,不会过于“迁就”各位童靴的需求,在后台也有很多同学留言,说是学习某某一方面的教程,或是图形的绘制等等。但是,自己的精力和时间有限,并没有那么多时间。

r语言箱线图统计分析 r语言怎么画多组箱线图_r语言


二、正文

导入数据

library(ggplot2)

y <- read.csv("inputdata.csv",header = T)
head(y)
> head(y)
     Var1     value
1 HSP90B1 0.5733672
2    LSP1 0.7332912
3 ARHGAP4 0.6003940
4   AHNAK 0.6811608
5    FLII 0.6231854
6 CWF19L1 0.5020677

计算均值

y.mean <- aggregate(.~Var1,y,mean) 
m <- y.mean$value
names(m) <- y.mean$Var1

排序

根据自己的需求取舍

y$Var1 <- factor(y$Var1, levels=names(sort(m)))

f <- function(y) {
  r <- quantile(y, probs = c(0.05, 0.25, 0.5, 0.75, 0.95))
  r[3] <- mean(y)
  names(r) <- c("ymin", "lower", "middle", "upper", "ymax")
  r
}

绘图

  1. 绘制基本图形
p1 <- ggplot(y, aes(Var1, value, fill = factor(Var1))) + 
  scale_fill_brewer(palette="Set3") + #配色
  guides(fill=FALSE) + #不显示图例
  
  stat_summary(fun.data= f, geom='boxplot')

r语言箱线图统计分析 r语言怎么画多组箱线图_r语言_02


2. x、y坐标轴互换

p2 <- p1 + coord_flip() + # x、y坐标轴互换

r语言箱线图统计分析 r语言怎么画多组箱线图_信息可视化_03


3. 再图中画一条虚线

p3 <- P2 +geom_hline(aes(yintercept=0.6), linetype="dashed") + #画一条虚线

r语言箱线图统计分析 r语言怎么画多组箱线图_r语言箱线图统计分析_04


4. 细节调整,可以根据自己的需求进行调整即可。

p3 + 
xlab("") + ylab("") + 
  theme(axis.text.x = element_text(family = "Arial", size = 16, face = "bold"),
        axis.text.y = element_text(family = "Arial", size = 16, face = "bold")) + 
  theme_bw() + 
   theme(panel.border=element_rect(size=1)) #边框粗细

关于theme(),我们可以自己编辑或设置一个,在所有图形中都有可运用,确保图形的统一性。

以下仅仅只是自己设置的一个,仅供参考。

theme(#legend.position="bottom",
    legend.text = element_text(size=12),
    legend.title = element_blank(),  ##右边标签的title显示
    panel.border = element_rect(linetype = 'solid', colour = 'black',fill = NA),
    panel.background = element_rect(fill = "white",
                                    colour = "white",
                                    size = 0.5, linetype = "solid"),
    axis.text.y = element_text(size=12, colour="black", family = "sans", angle = 0), 
    axis.text.x = element_text(size=12, colour="black", family = "sans", angle = 0, hjust = 0),
    axis.title= element_text(size=12),
    strip.text.x = element_text(size=12, angle = 0),
    strip.text.y = element_text(size=12, angle = 0),
    plot.title = element_text(size=12, angle = 0))

绘图所有的代码

ggplot(y, aes(Var1, value, fill = factor(Var1))) + 
  scale_fill_brewer(palette="Set3") + #配色
  guides(fill=FALSE) + #不显示图例
  
  stat_summary(fun.data= f, geom='boxplot') + 
  
  coord_flip() + # x、y坐标轴互换
  xlab("") + ylab("") + 
  theme_bw() + 
  geom_hline(aes(yintercept=0.6), linetype="dashed") + #画一条虚线
  
  theme(panel.border=element_rect(size=1))+ #边框粗细 
   theme(#legend.position="bottom",
    legend.text = element_text(size=12),
    legend.title = element_blank(),  ##右边标签的title显示
    panel.border = element_rect(linetype = 'solid', colour = 'black',fill = NA),
    panel.background = element_rect(fill = "white",
                                    colour = "white",
                                    size = 0.5, linetype = "solid"),
    axis.text.y = element_text(size=12, colour="black", family = "sans", angle = 0), 
    axis.text.x = element_text(size=12, colour="black", family = "sans", angle = 0, hjust = 0),
    axis.title= element_text(size=12),
    strip.text.x = element_text(size=12, angle = 0),
    strip.text.y = element_text(size=12, angle = 0),
    plot.title = element_text(size=12, angle = 0))

r语言箱线图统计分析 r语言怎么画多组箱线图_r语言箱线图统计分析_05