【精品推荐】R语言用circlize包绘制circos plot可视化报告(附代

2018-12-11 10:03

【原创】大数据部落——中国专业的第三方数据服务提供商

提供定制化的一站式数据挖掘和统计分析报告咨询服务:y0.cn/teradat(咨询服务请联系官网客服)

R语言用circlize包绘制circos plot可视化报告

circlize

circlize包在德国癌症中心的华人博士Zuguang Gu开发的,有兴趣的可以去看看他的Github

主页。这个包有两个文档,一个是介绍基本原理的绘制简单圈圈图的,也是本次要介绍的。另外一份文档专门介绍基因组数据绘制圈圈图Genomic Circos Plot,我自己还没看完,下次再介绍。

根据我的学习发现这个包与ggplot2很相似,也是先创建一个图层,然后不断的添加图形元素(point、line、bar等),这些简单的图形元素都有circos.这个前缀进行绘制,比如要绘制点,则用circos.points()。具体的下面一一介绍。

用circlize绘制圈圈图

照例,没有安装这个包的先安装:install.packages(\或者devtools::install_github(\。 library(circlize) # 简单创建一个数据集 set.seed(999) n <- 1000 a <- data.frame(factors = sample(letters[1:8], n, replace = TRUE), x = rnorm(n), y = runif(n)) 绘图第一步是先初始化(circos.initialize),接下来绘制track,再添加基本元素。需要提一下的是,由于circlize绘制图是不断叠加的,因此如果我们一大段代码下来我们只能看到最终的图形,这里为了演示每端代码的结果,所以每次我都得初始化以及circlize.clear。

绘制第一个track

par(mar = c(1, 1, 1, 1), lwd = 0.1, cex = 0.6) circos.par(track.height = 0.1) circos.initialize(factors = a$factors, x = a$x) #初始化,factors来控制track数目,初始化里只有x, 没有y。这一步相当于ggplot() circos.trackPlotRegion(factors = a$factors, y = a$y, panel.fun = function(x, y) { circos.axis()}) col <- rep(c(\自定义一下颜色# 这里先解释一下,一个track有好几个cell,具体数目由factors决定的,向本数据集中factors有八个,因此绘制一个track,其包含八个cell。含有前缀circos.track的函数会在所有的cel里添加基本元素,而只有前缀circos.的函数可以在特定的track、cell里添加基本元素。具体看下演示。 【原创】大数据部落——中国专业的第三方数据服务提供商

提供定制化的一站式数据挖掘和统计分析报告咨询服务:y0.cn/teradat(咨询服务请联系官网客服) circos.trackPoints(a$factors, a$x, a$y, col = col, pch = 16, cex = 0.5) #所有的cell里都绘制点图 circos.text(-1, 0.5, \在track 1中的标记为a的cell里添加 textcircos.text(1, 0.5, \circos.clear()

接下来绘制第二个track

circos.trackHist添加柱状图,由于柱状图相对高级一点,因此circos.trackHist会自动创建一个track,

无需我们circos.trackPlotRegion进行创建。 par(mar = c(1, 1, 1, 1), lwd = 0.1, cex = 0.6) circos.par(track.height = 0.1) circos.initialize(factors = a$factors, x = a$x) circos.trackPlotRegion(factors = a$factors, y = a$y, 【原创】大数据部落——中国专业的第三方数据服务提供商

提供定制化的一站式数据挖掘和统计分析报告咨询服务:y0.cn/teradat(咨询服务请联系官网客服) panel.fun = function(x, y) { circos.axis()}) col <- rep(c(\circos.trackPoints(a$factors, a$x, a$y, col = col, pch = 16, cex = 0.5) circos.text(-1, 0.5, \circos.text(1, 0.5, \bg.col <- rep(c(\circos.trackHist(a$factors, a$x, bg.col = bg.col, col = NA) circos.clear()

创建第三个track

【原创】大数据部落——中国专业的第三方数据服务提供商

提供定制化的一站式数据挖掘和统计分析报告咨询服务:y0.cn/teradat(咨询服务请联系官网客服)

这里又得提一下,当我们绘制多个track时,我们添加基本元素时要指定添加到哪个

track(track.index指定)、哪个cell(sector.index指定)里,如果不指定,那么将默认track是我们刚刚

创建的那个。track.index、sector.index等参数可以通过get.cell.meta.data函数获取。 par(mar = c(1, 1, 1, 1), lwd = 0.1, cex = 0.6) circos.par(track.height = 0.1) circos.initialize(factors = a$factors, x = a$x) circos.trackPlotRegion(factors = a$factors, y = a$y, panel.fun = function(x, y) { circos.axis()}) col <- rep(c(\circos.trackPoints(a$factors, a$x, a$y, col = col, pch = 16, cex = 0.5) circos.text(-1, 0.5, \circos.text(1, 0.5, \bg.col <- rep(c(\circos.trackHist(a$factors, a$x, bg.col = bg.col, col = NA) circos.trackPlotRegion(factors = a$factors, x = a$x, y = a$y, panel.fun = function(x, y) { grey = c(\ sector.index = get.cell.meta.data(\这个是第三个track,因为我们刚刚创建,这里这一步不用也可。 xlim = get.cell.meta.data(\ ylim = get.cell.meta.data(\ circos.text(mean(xlim), mean(ylim), sector.index) circos.points(x[1:10], y[1:10], col = \ circos.points(x[11:20], y[11:20], col = \circos.clear() 【原创】大数据部落——中国专业的第三方数据服务提供商

提供定制化的一站式数据挖掘和统计分析报告咨询服务:y0.cn/teradat(咨询服务请联系官网客服)

实际操作中我们常常会更新数据或者想更新图形,这是可以通过circos.updatePlotRegion函数在特定的track、cell里(先删除再添加)update,下面我们将通过circos.updatePlotRegion函数先删除track

2、sector d中的图形元素再添加点图。 par(mar = c(1, 1, 1, 1), lwd = 0.1, cex = 0.6) circos.par(track.height = 0.1) circos.initialize(factors = a$factors, x = a$x) circos.trackPlotRegion(factors = a$factors, y = a$y, panel.fun = function(x, y) { circos.axis()})col <- rep(c(\circos.trackPoints(a$factors, a$x, a$y, col = col, pch = 16, cex = 0.5) circos.text(-1, 0.5, \circos.text(1, 0.5, \circos.trackPoints(a$factors, a$x, a$y, col = col, pch = 16, cex = 0.5)


【精品推荐】R语言用circlize包绘制circos plot可视化报告(附代.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:城市规划社会调查获奖正文(含问卷和统计)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: