统计学PCAR语言可视化

主成分分析(R语言实现)

2018-05-20  本文已影响238人  Thinkando

前言

主成分分析原理在我另一篇里有介绍(https://www.jianshu.com/p/7ceb82959258

1. 降维概述

2. 主成分分析

image.png

R 语言实现

2.1 材料准备

  1. 分析数据,横轴为样本名称,纵轴为芯片探针


    image.png
  2. 不同的肿瘤样本临床分期信息


    image.png

R 语言实现

##读入数据
dat = read.table("GeneExpression.txt",header=TRUE,sep="\t")
traits = read.table('sampleTraits.txt',sep="\t",header= T)

##定义颜色
blue = "#307eb9"
purple = "#974e9e"
red = "#e41e25"
orange = "#f57f21"
yellow = "#f4ed35"
lblue = "#74d7ff"
red2 = "#ff1751"
green = "#4cb049"

color = factor(traits$grade,
               labels = c(lblue,purple,orange,yellow,red2,green,"black"),
               levels = c("G1","G2","G3","G4","G5","G6","G7"))

##主成分分析 ?princomp 查看帮助文档
pca <- princomp(dat)

##可视化, 可多角度观看
#draw 3d plot--1
library(rgl) 
plot3d(pca$loadings[,1:3],col=color,
       type="s",radius=0.005,
       grid=50L,pch=16)

#draw 3d plot--2
##一个角度
library(scatterplot3d)
scatterplot3d(pca$loadings[,1:3],main='PCA',color=color,type='p',
              highlight.3d=F,angle=60,grid=T,box=T,scale.y=1,
              cex.symbols=0.8,pch=16,col.grid='lightblue')
legend("topright",paste("G",1:7,sep=""),fill=c(lblue,purple,orange,yellow,red2,green,"black"),box.col="grey")

##多个角度,存到pdf,可以选一张喜欢的图展示
library(scatterplot3d)
pdf('pca.pdf',onefile=TRUE,width=8,height=8)
diffangle <- function(ang){
  scatterplot3d(pca$loadings[,1:3],main='PCA',color=color,type='p',
                highlight.3d=F,angle=ang,grid=T,box=T,scale.y=1,
                cex.symbols=1.2,pch=16,col.grid='lightblue')
  legend("topright",paste("G",1:7,sep=""),fill=c(lblue,purple,orange,yellow,red2,green,"black"),box.col="grey")
}
sapply(seq(-360,360,5),diffangle)
dev.off()

上一篇 下一篇

猜你喜欢

热点阅读