美文网首页
堆积图丨geom_violin函数

堆积图丨geom_violin函数

作者: 生信分析笔记 | 来源:发表于2022-11-15 20:00 被阅读0次

本文学习绘制简单小提琴图,包括介绍和绘图两部分,主要用到ggplot2包的geom_violin函数。

小提琴图是一种展示数据分布情况和数据统计信息的重要工具,能够看出数据的最大值、最小值、中位数、四分位数、分布密度、离群值等信息,它和箱线图比较类似。小提琴图怎么看?


从上往下看,依次为:

  • 离群点:表示超出范围的值
  • 上边界:数据的上界
  • 四分位:箱线图的箱子和小提琴图中央的黑色竖直线,都表示四分位的范围
  • 中心点;箱线图的箱子中央横线,小提琴图中间的点,表示中值。

绘图前准备工作

加载R包

library(ggplot2)
library(reshape2)

ggplot2包用于绘图,reshape2用于对数据矩阵进行处理,这两个R包很脸熟,未来可能经常会用到,推荐添加进配置文件自动载入。

载入数据

示例数据包含两列(第一列为分组信息,第二列为值),A组有7条数据,B组和C组有9个。这种数据就是用于ggplot绘图的标准格式,可以直接用于绘图。

> head(long_table)
   Grp Value
1 GrpA    10
2 GrpA    11
3 GrpA    11
4 GrpA    11
5 GrpA    12
6 GrpA    11

绘制小提琴图

绘图使用ggplot函数,依次进行:设置数据文件、初始化坐标轴、绘制小提琴图geom_violin、设置x轴标签显示方式、调整图例摆放位置,然后输入p生成plot。

p <- ggplot(long_table,aes(x=Grp,y=Value)) +
  geom_violin(aes(fill <- factor(Grp))) +
  theme(axis.text.x=element_text(angle=45,hjust=1,vjust=1)) +
  theme(legend.position="top")
p

绘图结果:



给小提琴图添加一些参数修饰,显示出中位数的点,用红色表示。

stat_summary(fun = median,
   geom="point",fill="red",
   shape=21,size=3)

小提琴图的上下端表示最值,看起来不太平滑,可以使用trim参数进行修改。能使结果图的上下端自动变得尖锐美观。

p <- p+ geom_violin(trim=F)

上面的内容是绘制小提琴图,为了进行对比,捎带学习一下简单的箱线图绘制方法。

绘制箱线图

在原始数据的基础上,利用rep生成一列新变量gender,然后利用geom_boxplot绘制箱线图,填充的内容的刚刚生成的gender(包含两水平的因子数据)

a <- c(rep(c('f',"m"),12),'f') #rep输出复制字符若干次
long_table$gender <- a
# 上面的代码用于添加一个新变量gender(包含f和m两个子项)
p <- ggplot(long_table,aes(x=Grp,y=Value)) +
  geom_boxplot(aes(fill=factor(gender)))
p

绘图结果:


笔者总结

  1. 绘图时每一步最好进行记录,以免返工时忘了曾经做了啥
  2. 原始数据保存好!
  3. 小提琴图有时比较奇怪,有可能是数据本身分布不均导致
  4. 图像主题参数太多,不宜挨个学习,宜遇上哪个学哪个

参考资料
1.https://www.jianshu.com/p/cd5b265ca11f
2.http://www.ehbio.com/Bioinfo_R_course

本文由mdnice多平台发布

相关文章

网友评论

      本文标题:堆积图丨geom_violin函数

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