三维点图和三维PCA图
生活随笔
收集整理的這篇文章主要介紹了
三维点图和三维PCA图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
3dscatter
1.ggplot2畫三維點圖
很輕松找到了R包,然鵝不是很完美的樣子。
#devtools::install_github("AckerDWM/gg3D")library("gg3D") library(ggplot2)data(iris) ggplot(iris, aes(x=Petal.Width, y=Sepal.Width, z=Petal.Length, color=Species)) + theme_void() +axes_3D() +stat_3D()2.scatterplot3d
一個不屬于ggplot2體系的特立獨行的R包,畫起來還算簡單。
參數pch表示形狀,不同形狀可以以數字1-24來代表。顏色的指定不支持映射,只能是把每個點的顏色設置好,傳遞給color參數。圖例需要單獨畫,不能自動生成,但最終出土的顏值我還是喜歡的。sthda上面也有關于這個包的漂亮代碼:?http://www.sthda.com/english/wiki/scatterplot3d-3d-graphics-r-software-and-data-visualization
#install.packages("scatterplot3d") library(scatterplot3d) my_color = c("#66C2A5FF", "#FC8D62FF", "#8DA0CBFF")colors = my_color[as.numeric(iris$Species)]p1 = scatterplot3d(iris[,1:3],color = colors,main="iris",pch = 16)legend(p1$xyz.convert(8.5, 2.5, 5), legend = levels(iris$Species),col = my_color, pch = 16) p2 = scatterplot3d(iris[,1:3],color = "black",main="iris",pch = 21,bg = colors) legend(p2$xyz.convert(8.5, 2.5, 5),col = "black", legend = levels(iris$Species),pt.bg = my_color, pch = 21)3.三維PCA圖
PCA已經有好幾個可視化的R包啦,把前三個主成分提取出來畫三維點圖也挺好看~
library(FactoMineR) dat = iris[,1:4] dat.pca = PCA(dat,graph = F) a = dat.pca[["ind"]][["coord"]] p3 = scatterplot3d(a[,1:3],color = "black",main="iris",pch = 21,bg = colors) legend("bottom",col = "black", legend = levels(iris$Species),pt.bg = my_color, pch = 21,inset = -0.2, xpd = TRUE, horiz = TRUE) my_pch = 22:24 pchs = my_pch[as.numeric(iris$Species)]p4 = scatterplot3d(a[,1:3],color = "black",main="iris",pch = pchs,bg = colors) legend("bottom",col = "black", legend = levels(iris$Species),pt.bg = my_color, pch = my_pch,inset = -0.2, xpd = TRUE, horiz = TRUE)總結
以上是生活随笔為你收集整理的三维点图和三维PCA图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MYSQL 判断一个时间段是否在另一个时
- 下一篇: ubuntu双系统引导梅花_Win10+