R语言交互式可视化包CanvasXpress
作者简介
刘永鑫,博士。2008年和2011年毕业东北农业大学微生物学和作物遗传育种专业。2014年在中科院遗传发育所获生物信息学博士学位,2016年博士后出站留所工作,任宏基因组学实验室工程师,目前主要研究方向为宏基因组学数据分析方法、培养组学方法优化。2017年7月创办“宏基因组”公众号,目前关注人数1.5万,累计阅读超百万。
公众号:宏基因组(meta-genome)
往期回顾
- 扩增子图表解读-理解文章思路(8种图型讲解)
- 扩增子分析流程-把握分析细节
- 扩增子统计绘图-冲击高分文章(R绘制8种图型)
- 微生物组入门必读+宏基因组实操课程
- 宏基因组分析教程
- 你想要的生信知识全在这—生信宝典
- 肠道菌群在人体中的作用
- 看完此片我想把身上的细菌寄生虫供起来
CanvasXpress包简介
感谢“宏基因组”群友李海敏推荐CanvasXpress包。
CanvasXpress核心是一个JavaScript语言编写的库,主要用于可重复研究。
在R中可以安装canvasXpress包,使用canvasXpress命令绘制各种各样的交互式图形,非常高效方便,实现如下数百种图形,令你的结果瞬间B格爆满。
更多介绍和实例,访问官网:https://canvasxpress.org/html/index.html
源代码、安装及使用示例详见 Github: https://github.com/neuhausi/canvasXpress
canvasXpress安装及加载
安装包位于github上,需要devtools工具安装
# 没有devtools也需要安装
install.packages(devtools)
library(devtools)# 安装canvasXpress
devtools::install_github('neuhausi/canvasXpress')
library(canvasXpress)
绘图实战
1. 三维散点图
# 读数据文件
y <- read.table("http://www.canvasxpress.org/data/cX-irist-dat.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
# 读取分组信息
z <- read.table("http://www.canvasxpress.org/data/cX-irist-var.txt", header=TRUE, sep= "\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
# 绘制三维散点图,主要参数为数据、分组、分组列、置信椭圆列、图表类型以及相关标签
canvasXpress(data = y,varAnnot = z,colorBy = "Species",ellipseBy = "Species",graphType = "Scatter3D",title = "Iris Data Set",xAxis = list("Sepal.Length"),yAxis = list("Petal.Width"),zAxis = list("Petal.Length"))
看到按分组绘制了三维散点图,而且添加了分组颜色和椭球形置信区间,我们可以鼠标托动变换角度,也可点选查看点的坐标
2. 矩阵散点图
# 读取数据表
y <- read.table("http://www.canvasxpress.org/data/cX-irist-dat.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
# 分组信息
z <- read.table("http://www.canvasxpress.org/data/cX-irist-var.txt", header=TRUE, sep= "\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
# 绘制矩阵散点图
canvasXpress(data = y,varAnnot = z,graphType = "Scatter2D",scatterPlotMatrix = TRUE,colorBy = "Species",showTransition = TRUE)
二维矩阵散点图展示多条件或因子数据的相关性,点选显示坐标数据
3. 箱线图
# 数据文件
y <- read.table("http://www.canvasxpress.org/data/cX-iris-dat.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)# 分组信息
x <- read.table("http://www.canvasxpress.org/data/cX-iris-smp.txt", header=TRUE, sep= "\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)# 绘制箱线图,按物种分大类,再按变量类型分小类
canvasXpress(data = y,smpAnnot = x,graphType = "Boxplot",graphOrientation = "vertical",title = "Iris flower data set",smpTitle = "Species",smpLabelFontStyle = "italic",smpLabelRotate = 90,xAxis2Show = FALSE,afterRender = list(list("groupSamples", list("Species"))))
箱线图比较组间整体数据分布,组内不同因子间比较
4. 多维热图
# 热图数据文件
y <- read.table("http://www.canvasxpress.org/data/cX-multidimensionalheatmap-dat.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
# 另一个数据矩阵文件
y2 <- read.table("http://www.canvasxpress.org/data/cX-multidimensionalheatmap-dat2.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
# 第三个数据属性矩阵,非连续型
y3 <- read.table("http://www.canvasxpress.org/data/cX-multidimensionalheatmap-dat3.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
# 第四个数据属性矩阵,非连续型
y4 <- read.table("http://www.canvasxpress.org/data/cX-multidimensionalheatmap-dat4.txt", header=TRUE, sep="\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
# 样品列表
x <- read.table("http://www.canvasxpress.org/data/cX-multidimensionalheatmap-smp.txt", header=TRUE, sep= "\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
# 变量列表
z <- read.table("http://www.canvasxpress.org/data/cX-multidimensionalheatmap-var.txt", header=TRUE, sep= "\t", quote="", row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE)
# 四维热图绘制:y为热图主体,y2为边框颜色,y3为形状,y4为大小
canvasXpress(data = list(y = y, data2 = y2, data3 = y3, data4 = y4),smpAnnot = x,varAnnot = z,graphType = "Heatmap",guides = TRUE,outlineBy = "Outline",outlineByData = "data2",shapeBy = "Shape",shapeByData = "data3",sizeBy = "Size",sizeByData = "data4")
四个矩阵绘制的热图,分别代表图中颜色、边框颜色、形状和大小,鼠标悬停显示属性值
5. 韦恩图
canvasXpress(vennData = data.frame(AC=456, A=340, ABC=552, ABCD=148, BC=915, ACD=298, BCD=613, B=562, CD=143, ABD=578, C=620, D=592, AB=639, BD=354, AD=257),graphType = "Venn",vennLegend = list(A="List 1", D="List 4", C="List 3", B="List 2"),vennGroups = 4)
四组比较韦恩图,需要已知15种情况下的信息。鼠标划过显示信息,双击还可显示固定信息窗口,窗口也可以托动
交互图表导出和交互
以第一个三维散图点图为例:
导出网页格式图片
导入网页:选择Export
中的Save as web page
,弹窗中输入或选择文件名,如果询问是否覆盖,点yes
即可;结束后会显示是否网页显示,选择Try again
即网页中打开显示(windows中可能没有)。
我们发现右上角存在一组工具箱,它存在非常多的交互功能。
右上角工具箱有4个按扭,分别为保存图片、移动、探索数据和全屏。其中探索数据中在复杂的操作面板,可以按组、样品选择、查找等操作,功能强大,用户可以自行尝试挖掘更多功能。
更多实例和资源
vignette查看更多示例
# 显示该包中所有示例,目前有开始和额外两类
vignette(package = "canvasXpress")# 分别展示每个示例
# 初级入门教程,也是上面提到的例子
vignette("getting_started", package = "canvasXpress")
# 额外示例,包括数据分析过程
vignette("additional_examples", package = "canvasXpress")
本文中就是讲的此软件官方教程,主要贡献是翻译和讲解。
Shiny小程序
更强大的交互实例,使用cxShinyExample
查看
# 展示所有Shiny示例
cxShinyExample()# 运行其中一个
cxShinyExample(example = "example1")
把数据编写成shiny小程序,可以网页中进入坐标轴选择组合展示数据,图中可用滚轮缩放图片区域。
更多学习资源和最新的软件教程,详见其官网:http://www.canvasxpress.org
学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
点阅读原文,跳转最新文章目录阅读 https://mp.weixin.qq.com/s/5jQspEvH5_4Xmart22gjMA
R语言交互式可视化包CanvasXpress相关推荐
- R语言交互式可视化包CanvasXpress推荐
文章目录 1 CanvasXpress包简介 1.1 canvasXpress安装及加载 2 绘图实战 2.1 三维散点图 2.2 矩阵散点图 2.3 箱线图 2.4 交互图表导出和交互 3 更多信息 ...
- r语言mvstats包_R语言交互式可视化包CanvasXpress
CanvasXpress包简介 CanvasXpress核心是一个JavaScript语言编写的库,主要用于可重复研究. 在R中可以安装canvasXpress包,使用canvasXpress命令绘制 ...
- 包r语言_R语言交互式可视化包CanvasXpress
CanvasXpress包简介 CanvasXpress核心是一个JavaScript语言编写的库,主要用于可重复研究. 在R中可以安装canvasXpress包,使用canvasXpress命令绘制 ...
- R语言ggplot2可视化包抑制数据轴使用科学计数法实战
R语言ggplot2可视化包抑制数据轴使用科学计数法实战 目录 R语言ggplot2可视化包抑制数据轴使用科学计数法实战
- R语言数据可视化包ggplot2画图之散点图
ggplot2的功能很强大,并因为其出色的画图能力而闻名,下面来介绍一下它的基本画图功能,本期介绍散点图的基本画法. 在ggplot2里,所有图片由6个基本要素组成: 1. 数据(Data) 2. 层 ...
- R语言数据可视化包ggplot2之折线图
ggplot2的功能很强大,并因为其出色的画图能力而闻名,下面来介绍一下它的基本画图功能,本期为折线图的基本画法. 在ggplot2里,所有图片由6个基本要素组成: 1. 数据(Data) 2. 层次 ...
- R语言使用timeROC包计算存在竞争情况下的生存资料多个标记物在相同时间下的cox及协变量分析AUC值、并可视化多个标记物在相同时间下的ROC值、多指标的ROC曲线(Time-dependent R
R语言使用timeROC包计算存在竞争情况下的生存资料多个标记物在相同时间下的cox及协变量分析AUC值.并可视化多个标记物在相同时间下的ROC值.多指标的ROC曲线(Time-dependent R ...
- R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用rotate参数指定进行斜交旋转提取因子、使用fa.diagram函数可视化斜交旋转因子分析、并解读可视化图形
R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵).使用rotate参数指定进行斜交旋转提取因子.使用fa.diagram函数可视化斜交旋转因子分析.并解读可视化图形 目 ...
- R语言使用DALEX包的model_performance函数对caret包生成的多个算法模型进行残差分布分析并使用箱图进行残差分布的可视化
R语言使用DALEX包的model_performance函数对caret包生成的多个算法模型进行残差分布分析并使用箱图进行残差分布的可视化 目录
最新文章
- 四川网络推广浅析网站标题到底能不能修改,什么时候能修改?
- 克莱门特公司在俄罗斯一个数据中心安装其新型冷却系统
- SQLServer表内自关联级联删除
- 近期项目中用到的一些自己写的或者整理而成的前端效果干货(二)
- 吴恩达机器学习--单变量线性回归【学习笔记】
- Linux同步原语系列-spinlock及其演进优化
- 【Flink】Flink 1.12 AbstractRichFunction 源码
- Cocos2d-x学习之---关于CCScrollView
- Oracle内存管理(五)
- LD3320的嵌入式语音识别系统的应用
- 数学文化赏析期末笔记
- K3 CLOUD计划管理之计划方案(MPS/MRP)
- 计算机对音乐课堂的帮助,电脑音乐在音乐教学中的应用
- 百度地图的使用 绘制多边形 编辑多边形
- JavaScript零基础知识点
- 1个做了7年外包公司老板的自述
- React Native之二维码扫描
- 2345王牌输入法卸载不干净
- 中国企业面临严峻的数字化人才短缺挑战,高达86%的受访企业面临招聘困难 | 美通社头条...
- FRDM-KW36入门学习(二、运行heart_rate_sensor工程)