文章目錄
作者簡介
劉永鑫,博士。2008年和2011年畢業東北農業大學微生物學和作物遺傳育種專業。2014年在中科院遺傳發育所獲生物信息學博士學位,2016年博士後出站留所工作,任宏基因組學實驗室工程師,目前主要研究方向爲宏基因組學數據分析方法、培養組學方法優化。2017年7月創辦“宏基因組”公衆號。
1 CanvasXpress包簡介
CanvasXpress核心是一個JavaScript語言編寫的庫,主要用於可重複研究。在R中可以安裝canvasXpress包,使用canvasXpress命令繪製各種各樣的交互式圖形。
更多介紹和實例,訪問官網:https://canvasxpress.org/html/index.html
源代碼、安裝及使用示例詳見 Github: https://github.com/neuhausi/canvasXpress
1.1 canvasXpress安裝及加載
安裝包位於github上,需要devtools工具安裝。
# 沒有devtools也需要安裝
install.packages(devtools)
library(devtools)
# 安裝canvasXpress
devtools::install_github('neuhausi/canvasXpress')
library(canvasXpress)
備註:若在安裝過程中顯示缺少某一個程輯包的話,就按照提示安裝相應的包即可。
2 繪圖實戰
2.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.2 矩陣散點圖
# 繪製矩陣散點圖
canvasXpress(data = y,
varAnnot = z,
graphType = "Scatter2D",
scatterPlotMatrix = TRUE,
colorBy = "Species",
showTransition = TRUE)
2.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"))))
2.4 交互圖表導出和交互
導出爲網頁的方法:選擇Export
中的Save as web page
,彈窗中輸入或選擇文件名,如果詢問是否覆蓋,點yes
即可。
3 更多信息
3.1 更多實例和教程
vignette查看更多示例
# 顯示該包中所有示例,目前有開始和額外兩類
vignette(package = "canvasXpress")
# 分別展示每個示例# 初級入門教程,也是上面提到的例子
vignette("getting_started", package = "canvasXpress")
# 額外示例,包括數據分析過程
vignette("additional_examples", package = "canvasXpress")
3.2 Shiny小程序
更強大的交互實例,使用cxShinyExample
查看
# 展示所有Shiny示例
cxShinyExample()
# 運行其中一個
cxShinyExample(example = "example1")
更多學習資源和最新的軟件教程,詳見其官網:http://www.canvasxpress.org