主成分分析完如果选用前两个个主成分画散点图,自己的各个类群分组不是很明显,这个时候可以选用3个主成分,画一个三维的散点图来看看。但是之前自己也没有画过,正好今天有人问到了这个,就查了查ggplot2的扩展包有没有做这个事情的,找了一个
ggrgl
,接下来试一下能不能行
首先是安装
帮助文档
https://github.com/coolbutuseless/ggrgl
安装命令
remotes::install_github('coolbutuseless/ggrgl', ref='main')
remotes
也是一个R包,如果提示你没有这个R包的话,使用install.package('remotes')
来安装
我运行安装的过程遇到了一个报错是(converted from warning) cannot remove prior installation of package ‘rlang’
这种情况通常是把rlang这个包手动删除,然后再重新运行安装的命令就可以了
虽然安装成功了,但是运行代码是没有结果的,代码如下
ggplot(data=pca.result)+
geom_sphere_3d(aes(x=PC1,y=PC2,z=PC3))
安装另外一个包的时候遇到了报错
devtools::install_github("coolbutuseless/devoutrgl")
Error: Failed to install 'unknown package' from GitHub:
HTTP error 403.
API rate limit exceeded for 218.2.103.18. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)
Rate limit remaining: 0/60
Rate limit reset at: 2021-05-16 09:18:58 UTC
To increase your GitHub API rate limit
- Use `usethis::browse_github_pat()` to create a Personal Access Token.
- Use `usethis::edit_r_environ()` and add the token as `GITHUB_PAT`.
暂时还不知道是什么原因
ggplot2的扩展包画三维散点图暂时搞不定了,使用基础绘图函数吧
找到了一个参考链接
http://www.sthda.com/english/wiki/scatterplot3d-3d-graphics-r-software-and-data-visualization
介绍的还挺详细的,使用到的是scatterplot3d
R包
首先是主成分分析
df.pca<-prcomp(iris[,1:4])
summary(df.pca)
pca.result<-df.pca$x
pca.result<-data.frame(pca.result)
head(pca.result)
pca.result$Species<-iris$Species
总共数据是150,准备150个颜色和150个形状
colors <- c("#999999", "#E69F00", "#56B4E9")
colors <- colors[as.numeric(pca.result$Species)]
shape<-16:18
shape<-shape[as.numeric(pca.result$Species)]
画图
library("scatterplot3d")
s3d <- scatterplot3d(pca.result[,1:3],
pch = shape,
color=colors,
cex.symbols = 2)
legend("top", legend = levels(pca.result$Species),
col = c("#999999", "#E69F00", "#56B4E9"),
pch = c(16, 17, 18),
inset = -0.1, xpd = TRUE, horiz = TRUE)
最终结果如下
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!