【繪圖進(jìn)階】之六種帶中心點的PCA 圖和三維PCA圖繪制(四)
發(fā)稿時間:2020-07-03來源:天昊生物
前幾期我們有介紹PCA的多種繪圖方法,這里我們接著介紹幾種新的繪圖方法:ggpubr包進(jìn)行二維繪圖和scatterplot3d包繪制3D圖。
加載ggpubr包
In [1]:
一數(shù)據(jù)準(zhǔn)備
In [2]:
-
df = read.csv('3D.PCA.site.csv',header = T)
-
head(df)
Out[2]:
aggregate 計算中心點In [3]:
-
df_mean = aggregate(cbind(PCA1, PCA2) ~ sub_group, data = df, FUN = mean)
-
df_mean$group = c('B','B','C','C')
-
df_mean
Out[3]:
合并數(shù)據(jù)
In [4]:
-
data = merge(df,setNames(df_mean,c('sub_group','PCA1_mean','PCA2_mean','group')))
-
data
Out[4]:
二二維繪圖
2.1 常規(guī)PCA圖
In [5]:
-
p <- ggplot(df, aes(x = PCA1, y = PCA2, colour = sub_group)) + geom_point(size = 4)
-
p
Out[5]:
增加形狀
In [6]:
-
p1 = ggplot(df, aes(x = PCA1, y = PCA2, colour = sub_group,shape = group)) + geom_point(size = 4)
-
p1
Out[6]:
2.2 帶中心點的PCA圖
In [7]:
-
q = p1 + geom_point(data = df_mean, size = 6)
-
q
Out[7]:
2.3 添加置信橢圓
In [8]:
-
r = q + stat_ellipse( linetype = 2,level = 0.65,aes(group = sub_group, colour = sub_group))
-
r
Out[8]:
2.4 指定雜志配色的繪圖
In [9]:
-
# Add group ellipses and mean points
-
# Add stars
-
# +++++++++++++++++++
-
s = ggscatter(df, x = "PCA1", y = "PCA2",color = "sub_group", shape = "sub_group",palette = 'jco',ellipse = TRUE, mean.point = TRUE,star.plot = TRUE)
-
s
Out[9]:
2.5 連線放射
In [10]:
-
t = r + geom_segment(data = data,mapping = aes(xend = PCA1_mean, yend = PCA2_mean))
-
t
Out[10]:
2.6 外點連線
In [11]:
In [12]:
-
u = p + geom_encircle(s_shape=1, expand=0)
-
u
Out[12]:
2.7 波普樣式
In [13]:
Out[13]:
2.8 多個圖形繪制在一起
In [14]:
-
ggarrange( p,p1,q , r ,s ,t ,u,v, ncol =2 , nrow =4,legend='top',common.legend = T)
Out[14]:
三3D 繪圖
In [15]:
-
# install.packages('scatterplot3d')
-
library(scatterplot3d)
In [16]:
In [17]:
-
color = c('red','black', 'blue','yellow')
-
colors=color[as.numeric(df$sub_group)]
-
colors
Out[17]:
-
'red' 'red' 'red' 'red' 'black' 'black' 'black' 'black' 'blue' 'blue' 'blue' 'blue' 'blue' 'blue' 'yellow' 'yellow' 'yellow' 'yellow'
由于PCA1和PCA2的貢獻(xiàn)度更高,因此我們需要面向我們的X軸和Z軸對應(yīng)PCA1和PCA2
In [18]:
-
scatterplot3d(x =PCA1, y = PCA3, z = PCA2,main = "PCA", xlab='PCA1', ylab="", zlab='PCA2',pch = 19, color = colors, cex.symbols = 1.2)
-
legend("right", col = unique(colors), pch = 19, xpd = T, cex = 1, ncol =1,legend = unique(df$sub_group), bty = "n")
Out[18]:
往期相關(guān)鏈接:
1、R基礎(chǔ)篇
excel不熟練怎么辦,R來幫您(一)數(shù)據(jù)分類匯總;如何使用Rstudio練習(xí)R基礎(chǔ)教程;
R相關(guān)軟件及R包安裝;【零基礎(chǔ)學(xué)繪圖】之氣泡圖繪制(六);
【零基礎(chǔ)學(xué)繪圖】之繪制venn圖(五);
【零基礎(chǔ)學(xué)繪圖】之繪制barplot柱狀圖圖(四);
【零基礎(chǔ)學(xué)繪圖】之繪制heatmap圖(三);【零基礎(chǔ)學(xué)繪圖】之繪制PCA圖(二);
【零基礎(chǔ)學(xué)繪圖】之a(chǎn)lpha指數(shù)箱體圖繪制(一);
2、R進(jìn)階
【繪圖進(jìn)階】之交互式可刪減分組和顯示樣品名的PCA 圖(三);
【繪圖進(jìn)階】之繪制PCA biplot圖(二);
【進(jìn)階篇繪圖】之帶P值的箱體圖、小提琴圖繪制(一);
3、數(shù)據(jù)提交
3分鐘學(xué)會微生物多樣性云平臺數(shù)據(jù)分析;
3分鐘學(xué)會CHIP-seq類實驗測序數(shù)據(jù)可視化 —IGV的使用手冊;
10分鐘搞定多樣性數(shù)據(jù)提交,最快半天內(nèi)獲取登錄號,史上最全的多樣性原始數(shù)據(jù)提交教程;
20分鐘搞定GEO上傳,史上最簡單、最詳細(xì)的GEO數(shù)據(jù)上傳攻略;
4、表達(dá)譜分析
表達(dá)譜分析(二)通路富集分析和基因互作網(wǎng)絡(luò)圖繪制;如何對GEO數(shù)據(jù)進(jìn)行差異分析;
5、醫(yī)學(xué)數(shù)據(jù)分析
KING: 樣本親緣關(guān)系鑒定工具;【W(wǎng)GS服務(wù)升級】人工智能軟件SpliceAI助力解讀罕見和未確診疾病中的非編碼突變;隱性疾病trio家系別忽視單親二倍體現(xiàn)象——天昊數(shù)據(jù)分析助力臨床疾病診斷新添UPD(單親二倍體)可視化分析工具;【昊工具】Oh My God! 太好用了吧!疾病或表型的關(guān)鍵基因查詢數(shù)據(jù)庫,我不允許你不知道Phenolyzer;