CanvasXpress包简介感谢“宏基因组0”群友李海敏推荐CanvasXpress包。 CanvasXpress核心是一个JavaScript语言编写的库,主要用于可重复研究。 在R中可以安装canvasXpress包,使用canvasXpress命令绘制各种各样的交互式图形,非常高效方便,实现如下数百种图形,令你的结果瞬间B格爆满。
更多介绍和实例,访问官网:https:///html/index.html 源代码、安装及使用示例详见 Github: https://github.com/neuhausi/canvasXpress canvasXpress安装及加载安装包位于github上,需要devtools工具安装 # 没有devtools也需要安装install.packages(devtools)library(devtools)# 安装canvasXpressdevtools::install_github('neuhausi/canvasXpress')library(canvasXpress)
绘图实战1. 三维散点图 # 读数据文件y <- read.table('http://www./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./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="" ="" ="">->
看到按分组绘制了三维散点图,而且添加了分组颜色和椭球形置信区间,我们可以鼠标托动变换角度,也可点选查看点的坐标
2. 矩阵散点图 # 读取数据表 y <->->'http://www./data/cX-irist-dat.txt', header=TRUE, sep='\t', quote='', row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE) # 分组信息 z <->->'http://www./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 <->->'http://www./data/cX-iris-dat.txt', header=TRUE, sep='\t', quote='', row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE) # 分组信息 x <->->'http://www./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 <->->'http://www./data/cX-multidimensionalheatmap-dat.txt', header=TRUE, sep='\t', quote='', row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE) # 另一个数据矩阵文件 y2 <->->'http://www./data/cX-multidimensionalheatmap-dat2.txt', header=TRUE, sep='\t', quote='', row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE) # 第三个数据属性矩阵,非连续型 y3 <->->'http://www./data/cX-multidimensionalheatmap-dat3.txt', header=TRUE, sep='\t', quote='', row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE) # 第四个数据属性矩阵,非连续型 y4 <->->'http://www./data/cX-multidimensionalheatmap-dat4.txt', header=TRUE, sep='\t', quote='', row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE) # 样品列表 x <->->'http://www./data/cX-multidimensionalheatmap-smp.txt', header=TRUE, sep= '\t', quote='', row.names=1, fill=TRUE, check.names=FALSE, stringsAsFactors=FALSE) # 变量列表 z <->->'http://www./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.
|