一、簡介
ggbiplot是一個用於生成二維平面生物信息學數據可視化的R包,它可以通過ggplot2包來創建雙主成分分析(Biplot),並且支持添加基於PCA、MCA、CA等降維方法的貢獻率、類別等信息。ggbiplot可以幫助生物信息學研究者更好地理解其數據的分布情況,更加直觀地展示生物樣本之間的差異和相似性。
二、安裝及庫引入
1、安裝
install.packages("devtools")
devtools::install_github("vqv/ggbiplot")
library(ggbiplot)
2、庫引入
library(ggplot2)
library(ggbiplot)
三、基本繪圖
在正式繪製Biplot之前需要進行PCAscores的計算,以下是實現Biplot繪製的R語言代碼:
#導入數據
data(iris)
ir.species <- iris[, 5]
ir.features <- iris[, -5]
#PCA分析並紀錄貢獻率
set.seed(1)
ir.pca <- prcomp(ir.features, scale=T)
ir.pca$contrib <- (ir.pca$sdev ^ 2) / sum(ir.pca$sdev ^ 2)
#create Biplot
ggbiplot(ir.pca, obs.scale = 1, var.scale = 1, labels = ir.species, circle = TRUE,ellipse = TRUE,
alpha = 0.05, varname.size = 5, var.axes = TRUE)
上述代碼會生成如下的Biplot圖示:
四、ggbiplot的可選參數
ggbiplot的繪圖參數可以幫助我們更好地定製Biplot圖像,下面是一些重要的參數解釋:
– obs.scale:測量向量是否縮放相同(默認:1)。
– var.scale:向量縮放是否具有等間隔空間(默認值:1)。
– var.axes:是否在Biplot上繪製變數向量(默認值:TRUE)。
– alpha:用於繪製數據的透明度,默認值為0.05。
– labels:一個向量或字元串,指示Biplot中哪些個體應該用什麼標籤表示。
– circle:是否在Biplot上繪製一個圓以指示單位距離(默認值:TRUE)。
– ellipse:是否在Biplot上繪製橢圓以顯示方差(默認值:TRUE)。
五、應用實例
1. 比較樣品
下面的代碼將氣候數據分為不同顏色,以比較兩個狀態下的樣品分布情況:
data(climate)
states <- rep(c(rep("AL", 3), rep("CA", 2)), 3)
county <- levels(climate$station)[c(1, 2, 7, 8)]
colors <- c("black", "red")
names(colors) <- c("AL", "CA")
ggbiplot(prcomp(climate[, county]), labels = county, groups = states, ellipse = TRUE, circle = TRUE,
var.axes = FALSE, alpha = 0, size = 4, varname.size = 4, palette = colors)
2. 按類別繪製
下面的代碼將用顏色按照花瓣的長度與寬度分類數據,並將species的名稱添加到縱軸和橫軸上以進行標記:
data(iris)
ggbiplot(prcomp(iris[, 1:4]), groups = iris$Species, varname.size = 3, var.axes = FALSE, alpha = 0)+
scale_color_discrete(name = "")
3. 更改Biplot顏色
下面的代碼將用顏色按照五角星和球形的顏色分類數據,並將其名稱添加到Biplot上:
data(treepop)
ggbiplot(prcomp(treepop[, 1:6]),labels = treepop$species,groups = treepop$pop, ellipse = TRUE, circle = TRUE, var.axes = FALSE, alpha = 0, varname.size = 5,pch=c(5,16),color=c('red','blue'))
4. 更改Biplot字體
下面的代碼將用顏色按照城市分類數據,並將其名稱添加到Biplot上。此外,還將更改字體大小和字體類型:
library(extrafont)
data(usarrests)
usarrests <- data.frame(scale(usarrests, center = TRUE, scale = TRUE), check.names = FALSE)
ggbiplot(prcomp(usarrests), obs.scale = 1, var.scale = 1, alpha = 0.75,
groups = rownames(usarrests), ellipse = TRUE, circle = TRUE, var.axes = FALSE,
labels = rownames(usarrests), varname.size = 9, varname.adjust = 1, font.family = "OpenSans",
fonts = c("plain", "italic", "bold", "bold.italic"))
六、總結
本文介紹了ggbiplot包的基本使用,包括安裝和引用相應庫、繪製Biplot的基本方法、Biplot的可選參數、以及ggbiplot在不同應用場景下的實際應用。ggbiplot的強大功能能夠幫助生物信息學研究者更快、更好地理解其數據的分布情況,從而發現更多有價值的科研成果。
原創文章,作者:JJJCF,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/361944.html