咨询热线:400-065-6886
首页>>技术支持>>科研进展

【绘图进阶】之六种带中心点的PCA 图和三维PCA图绘制(四)


上海天昊生物 

前几期我们有介绍PCA的多种绘图方法,这里我们接着介绍几种新的绘图方法:ggpubr包进行二维绘图和scatterplot3d包绘制3D图。



加载ggpubr包

In [1]:
library(ggpubr)


 


数据准备

 

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]:



合并数据

In [4]:
data = merge(df,setNames(df_mean,c('sub_group','PCA1_mean','PCA2_mean','group')))
data

Out[4]:


 


 

二维绘图


2.1 常规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]:
library(ggalt)

In [12]:
u = p + geom_encircle(s_shape=1, expand=0)
u

Out[12]:



2.7 波普样式

In [13]:
v = q + geom_bkde2d()
v

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]:
attach(df)

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的贡献度更高,因此我们需要面向我们的X轴和Z轴对应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]:


关注“上海天昊生物”公众号,

回复关键字“PCA”,

获取文章链接,数据和代码的百度云盘链接。

往期相关链接:

1、R基础篇

excel不熟练怎么办,R来帮您(一)数据分类汇总
如何使用Rstudio练习R基础教程
R相关软件及R包安装
【零基础学绘图】之气泡图绘制(六)
【零基础学绘图】之绘制venn图(五)
【零基础学绘图】之绘制barplot柱状图图(四)
【零基础学绘图】之绘制heatmap图(三)
【零基础学绘图】之绘制PCA图(二)
【零基础学绘图】之alpha指数箱体图绘制(一)

2、R进阶

【绘图进阶】之交互式可删减分组和显示样品名的PCA 图(三)

【绘图进阶】之绘制PCA biplot图(二)

【进阶篇绘图】之带P值的箱体图、小提琴图绘制(一)

3、数据提交

3分钟学会微生物多样性云平台数据分析;

3分钟学会CHIP-seq类实验测序数据可视化 —IGV的使用手册

10分钟搞定多样性数据提交,最快半天内获取登录号,史上最全的多样性原始数据提交教程

20分钟搞定GEO上传,史上最简单、最详细的GEO数据上传攻略

4、表达谱分析

表达谱分析(二)通路富集分析和基因互作网络图绘制
如何对GEO数据进行差异分析

5、医学数据分析

KING: 样本亲缘关系鉴定工具
【WGS服务升级】人工智能软件SpliceAI助力解读罕见和未确诊疾病中的非编码突变
隐性疾病trio家系别忽视单亲二倍体现象——天昊数据分析助力临床疾病诊断新添UPD(单亲二倍体)可视化分析工具
【昊工具】Oh My God! 太好用了吧!疾病或表型的关键基因查询数据库,我不允许你不知道Phenolyzer
 

 

【本群将为大家提供】

分享生信分析方案

提供数据素材及分析软件支持

定期开展生信分析线上讲座

QQ号:1040471849

 
 

作者:大熊

审核:有才

来源:天昊生信团

自带C位的PCA,还不快来get

 

 

微信扫一扫
关注该公众号

 

 




上海昊为泰生物科技有限公司 版权所有 沪ICP备18028200号-1
地址:上海市浦东新区康桥路787号9号楼 邮箱:techsupport@geneskies.com 电话:400-065-6886