前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言学习 - 箱线图一步法

R语言学习 - 箱线图一步法

作者头像
生信宝典
发布2018-02-05 11:44:06
1.4K0
发布2018-02-05 11:44:06
举报
文章被收录于专栏:生信宝典生信宝典

箱线图 - 一步绘制

绘图时通常会碰到两个头疼的问题:

  1. 有时需要绘制很多的图,唯一的不同就是输入文件,其它都不需要修改。如果用R脚本,需要反复替换文件名,繁琐又容易出错。 (R也有命令行参数,不熟,有经验的可以尝试下)
  2. 每次绘图都需要不断的调整参数,时间久了不用,就忘记参数怎么设置了;或者调整次数过多,有了很多版本,最后不知道用哪个了。

为了简化绘图、维持脚本的一致,我用bash对绘图命令做了一个封装,通过配置修改命令行参数,生成相应的绘图脚本,然后再绘制。

首先把测试数据存储到文件中方便调用。数据矩阵存储在boxplot.normal.datasampleGroupboxplot.melt.data文件中 (TAB键分割,内容在文档最后。如果你手上有自己的数据,也可以拿来用)。

使用正常矩阵默认参数绘制箱线图

代码语言:javascript
复制
# -f: 指定输入的矩阵文件,第一列为行名字,第一行为header
      列数不限,列名字不限;行数不限,行名字默认为文本
sp_boxplot.sh -f boxplot.normal.data

箱线图出来了,但有点小乱。

代码语言:javascript
复制
# -f: 指定输入的矩阵文件,第一列为行名字,第一行为header
      列数不限,列名字不限;行数不限,行名字默认为文本
# -P: none, 去掉legend (uppercase P)
# -b: X-axis旋转45度
# -V: TRUE 绘制小提琴图
sp_boxplot.sh -f boxplot.normal.data -P none -b 45 -V TRUE

绘制单个基因的小提琴图加抖动图

代码语言:javascript
复制
# -q: 指定某一行的名字,此处为基因名,绘制基因A的表达图谱
# -Q: 指定样本分组,绘制基因A在不同样品组的表达趋势
# -F Group: sampleGroup中第二列的名字,指代分组信息,根据需要修改
# -J TRUE: 绘制抖动图 jitter plot
# -L: 设置X轴样品组顺序
# -c TRUE -C "'red', 'pink', 'blue'": 指定每个箱线图的颜色
sp_boxplot.sh -f boxplot.normal.data -q A -Q sampleGroup -F Group -V TRUE -J TRUE -L "'zygote','2cell','4cell'" -c TRUE -C "'red', 'pink', 'blue'" -P none

使用melted矩阵默认参数绘箱线图

代码语言:javascript
复制
# -f: 指定输入文件
# -m TRUE: 指定输入的矩阵为melted format
# -d Expr:指定表达值所在的列
# -F Rep: 指定子类所在列,也就是legend 
# -a Group:指定X轴分组信息
# -j TRUE: jitter plot
sp_boxplot.sh -f boxplot.melt.data -m TRUE -d Expr -F Rep -a Group  -j TRUE
代码语言:javascript
复制
# 如果没有子类,则-a和-F指定为同一值
# -R TRUE: 旋转boxplot
sp_boxplot.sh -f boxplot.melt.data -m TRUE -d Expr -a Group -F Group -J TRUE -R TRUE

参数中最需要注意的是引号的使用:

  • 外层引号与内层引号不能相同
  • 凡参数值中包括了空格括号逗号等都用引号括起来作为一个整体。

测试数据

代码语言:javascript
复制
#boxplot.normal.data
Name    2cell_1    2cell_2    2cell_3    2cell_4    2cell_5    2cell_6    4cell_1    4cell_2    4cell_3    4cell_4    4cell_5    4cell_6    zygote_1    zygote_2    zygote_3    zygote_4    zygote_5    zygote_6
A    4    6    7    5    8    6    3.2    5.2    5.6    3.6    7.6    4.8    2    4    3    2    4    2.5
B    6    8    9    7    10    8    5.2    7.2    7.6    5.6    9.6    6.8    4    6    5    4    6    4.5
C    8    10    11    9    12    10    7.2    9.2    9.6    7.6    11.6    8.8    6    8    7    6    8    6.5
D    10    12    13    11    14    12    9.2    11.2    11.6    9.6    13.6    10.8    8    10    9    8    10    8.5
E    12    14    15    13    16    14    11.2    13.2    13.6    11.6    15.6    12.8    10    12    11    10    12    10.5
F    14    16    17    15    18    16    13.2    15.2    15.6    13.6    17.6    14.8    12    14    13    12    14    12.5
G    15    17    18    16    19    17    14.2    16.2    16.6    14.6    18.6    15.8    13    15    14    13    15    13.5
H    16    18    19    17    20    18    15.2    17.2    17.6    15.6    19.6    16.8    14    16    15    14    16    14.5
I    17    19    20    18    21    19    16.2    18.2    18.6    16.6    20.6    17.8    15    17    16    15    17    15.5
J    18    20    21    19    22    20    17.2    19.2    19.6    17.6    21.6    18.8    16    18    17    16    18    16.5
L    19    21    22    20    23    21    18.2    20.2    20.6    18.6    22.6    19.8    17    19    18    17    19    17.5
M    20    22    23    21    24    22    19.2    21.2    21.6    19.6    23.6    20.8    18    20    19    18    20    18.5
N    21    23    24    22    25    23    20.2    22.2    22.6    20.6    24.6    21.8    19    21    20    19    21    19.5
O    22    24    25    23    26    24    21.2    23.2    23.6    21.6    25.6    22.8    20    22    21    20    22    20.5
代码语言:javascript
复制
#boxplot.melt.data

Gene    Sample    Group    Expr    Rep
A    zygote_1    zygote    2    1
A    zygote_2    zygote    4    2
A    zygote_3    zygote    3    3
A    zygote_4    zygote    2    4
A    zygote_5    zygote    4    5
A    zygote_6    zygote    2.5    6
A    2cell_1    2cell    4    1
A    2cell_2    2cell    6    2
A    2cell_3    2cell    7    3
A    2cell_4    2cell    5    4
A    2cell_5    2cell    8    5
A    2cell_6    2cell    6    6
A    4cell_1    4cell    3.2    1
A    4cell_2    4cell    5.2    2
A    4cell_3    4cell    5.6    3
A    4cell_4    4cell    3.6    4
A    4cell_5    4cell    7.6    5
A    4cell_6    4cell    4.8    6
代码语言:javascript
复制
#sampleGroup
Sample    Group
zygote_1    zygote
zygote_2    zygote
zygote_3    zygote
zygote_4    zygote
zygote_5    zygote
zygote_6    zygote
2cell_1    2cell
2cell_2    2cell
2cell_3    2cell
2cell_4    2cell
2cell_5    2cell
2cell_6    2cell
4cell_1    4cell
4cell_2    4cell
4cell_3    4cell
4cell_4    4cell
4cell_5    4cell
4cell_6    4cell
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信宝典 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 箱线图 - 一步绘制
  • 测试数据
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档