# 安装包
if (!requireNamespace("plot3D", quietly = TRUE)) {
install.packages("plot3D")
}if (!requireNamespace("ggplotify", quietly = TRUE)) {
install.packages("ggplotify")
}
# 加载包
library(plot3D)
library(ggplotify)
三维散点图
注记
Hiplot 网站
本页面为 Hiplot 3D Scatter
插件的源码版本教程,您也可以使用 Hiplot 网站实现无代码绘图,更多信息请查看以下链接:
三维散点图是将多个定量变量运用于空间中的不同轴上,并将不同的变量组合成空间中的坐标,从而对三个定量变量的交互关系进行清晰的解释。
环境配置
系统: Cross-platform (Linux/MacOS/Windows)
编程语言: R
依赖包:
plot3D
;ggplotify
数据准备
载入数据为三个变量和分组。
# 加载数据
<- read.delim("files/Hiplot/159-scatter-3d-data.txt", header = T)
data
# 整理数据格式
<- which(colnames(data) == "group")
col_idx <- as.factor(data[, col_idx])
data[, col_idx] <- 19
shapes <- ""
shape_idx
# 查看数据
head(data)
temp pressure dtime group
1 41.11057 0.49351190 1 G1
2 35.23429 0.76636476 2 G1
3 26.58407 0.63885937 3 G1
4 34.76097 -0.08106332 4 G1
5 25.76521 -0.31731579 5 G1
6 20.30115 -1.91132873 6 G1
可视化
# 三维散点图
<- as.ggplot(function() {
p <- scatter3D(data[, 1], data[, 2], data[, 3],
plot3d pch = shapes, cex = 1,
phi = 0, theta = 45, ticktype = "detailed",
bty = "b2", colkey = FALSE, alpha = 1,
xlab = colnames(data)[1], ylab = colnames(data)[2],
zlab = colnames(data)[3],
main = "3D-Scatter Plot",
colvar = as.numeric(as.factor(data[, 4])),
col = c("#e04d39","#5bbad6","#1e9f86")
)
legend("right", pch=19, legend = levels(data[, col_idx]),
cex = 1.1, bty = 'n', xjust = 0.5, horiz = F,
title = colnames(data)[col_idx],
col = c("#e04d39","#5bbad6","#1e9f86"))
})
p

图中分别将温度、压力、时间放置在 x(水平轴)、y(垂直轴)、z(透视轴)上,生成一幅三维散点图,直观发现三者变量间的相关关系及相关强弱程度。