ggplot2 PCA散点图绘制

Posted liulele

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ggplot2 PCA散点图绘制相关的知识,希望对你有一定的参考价值。

分别利用颜色(colour)和形状(shape i.e. pch)进行分组很多属性需要单独设置。

用到的对象有

  • 数据映射(Aes,Data aesthetic mappings)
  • 几何属性(Geom,Geometric objects)
  • 统计转换(Stat,Statistical transformations)
  • 标度(Scales)
  • 坐标系(xlab, ylab, coor, coordinate system)
  • 主题(theme)

暂时未用到分面(faceting)

 

myData <- read.csv("data.csv")
myData2 <- myData[,-20]
myData3 <- na.omit(myData2)
pr<-prcomp(myData3[,5:20],scale=TRUE)

pca <- pr$x

####一下为ggplot2绘图

library(ggplot2)
pca <- as.data.frame(pca)
pca$salinity <- myData3$Salinity
pca$climate <- myData3$Climate
pca$ecotype <- myData3$Ecotype
pca$name <- myData3$Plant.name

theme<-theme(panel.background = element_blank(),
             panel.border=element_rect(fill=NA),
             panel.grid.major = element_blank(),
             panel.grid.minor = element_blank(),
             strip.background=element_blank(),
             axis.text.x=element_text(colour="black"),
             axis.text.y=element_text(colour="black"),
             axis.ticks=element_line(colour="black"),
             plot.margin=unit(c(1,1,1,1),"line"),
             legend.title=element_blank(),
             legend.key = element_rect(fill = "white")
             )
percentage <- round(pr$sdev / sum(pr$sdev) * 100, 2)
percentage <- paste( colnames(pca), "(", paste( as.character(percentage), "%", ")", sep="") )

p <- ggplot(pca, aes(x=PC1, y=PC2,shape=paste(salinity, climate), colour=ecotype,label=name))
#p <- p + geom_point()+geom_text(size=3) + theme

p <- p + geom_point(size=3) + 
  theme + 
  xlab(percentage[1])  +
  ylab(percentage[2])  +
  scale_shape_manual(values = c(15,17,0,2),labels=c("Salt in Fanggan","Salt in Panjin","Fresh in Fanggan","Fresh in Panjin"))+
  stat_ellipse(aes(shape = NULL))+
  scale_x_continuous(limits = c(-6,6))+
  scale_y_continuous(limits = c(-5,5.5))
p

 

技术图片

 

以上是关于ggplot2 PCA散点图绘制的主要内容,如果未能解决你的问题,请参考以下文章

如何使用matlab在K-means算法后绘制具有不同颜色簇的PCA散点图?

R语言使用ggplot2绘制带有边缘直方图的散点图实战

Fig4-a ggplot2绘制箱线图叠加散点图2020-12-14

R语言ggplot2可视化散点图实战:绘制基础散点图为所有散点添加标签只为大于阈值的散点添加标签

R语言使用ggplot2包的快速可视化函数qplot绘制散点图实战

如何使用 ggplot2 为散点图绘制多条趋势线?