当前位置:   article > 正文

R语言精美图形绘制系列 | 箱线图绘制_r 怎么画每列数据的箱形图

r 怎么画每列数据的箱形图

一、前言

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


二、正文

导入数据

library(ggplot2)

y <- read.csv("inputdata.csv",header = T)
head(y)
  • 1
  • 2
  • 3
  • 4
> 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

计算均值

y.mean <- aggregate(.~Var1,y,mean) 
m <- y.mean$value
names(m) <- y.mean$Var1
  • 1
  • 2
  • 3

排序

根据自己的需求取舍

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

绘图

  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')
  • 1
  • 2
  • 3
  • 4
  • 5


2. x、y坐标轴互换

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


3. 再图中画一条虚线

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


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)) #边框粗细 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

关于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))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

绘图所有的代码

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))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

关于获得代码和社群


往期文章:

1. 最全WGCNA教程(替换数据即可出全部结果与图形)


2. 精美图形绘制教程

3. 转录组分析教程

小杜的生信筆記,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/131927
推荐阅读
相关标签
  

闽ICP备14008679号