Err*_*404 13 plot r multi-dimensional-scaling rgl
我试图在R中绘制一个5维图.我目前正在使用rgl包在4维中绘制我的数据,使用3个变量作为x,y,z,坐标,另一个变量作为颜色.我想知道是否可以使用此包添加第五个变量,例如空间中点的大小或形状.这是我的数据和我当前代码的示例:
set.seed(1)
df <- data.frame(replicate(4,sample(1:200,1000,rep=TRUE)))
addme <- data.frame(replicate(1,sample(0:1,1000,rep=TRUE)))
df <- cbind(df,addme)
colnames(df) <- c("var1","var2","var3","var4","var5")
require(rgl)
plot3d(df$var1, df$var2, df$var3, col=as.numeric(df$var4), size=0.5, type='s',xlab="var1",ylab="var2",zlab="var3")
Run Code Online (Sandbox Code Playgroud)
我希望有可能做到第五维度.非常感谢,
Bro*_*ieG 26
这是一个ggplot2选项.我通常会回避3D图,因为它们难以正确解释.我也几乎没有在同一个情节中输入5个连续变量,就像我在这里...
ggplot(df, aes(x=var1, y=var2, fill=var3, color=var4, size=var5^2)) +
geom_point(shape=21) +
scale_color_gradient(low="red", high="green") +
scale_size_continuous(range=c(1,12))
Run Code Online (Sandbox Code Playgroud)

虽然这有点乱,但实际上你可以合理地读取大多数点的所有5个维度.
如果您的某些变量是分类的,那么更好的多维绘图方法就会打开.如果所有变量都是连续的,您可以将其中一些变为分类,cut然后使用facet_wrap或facet_grid绘制它们.
例如,在这里我分解var3并var4进入五分位数并使用facet_grid它们.请注意,我还保持颜色美观,以突出大多数时间将连续变量转换为高维图中的分类,足以获得关键点(这里你会注意到填充和边框颜色很漂亮在任何给定网格单元内均匀):
df$var4.cat <- cut(df$var4, quantile(df$var4, (0:5)/5), include.lowest=T)
df$var3.cat <- cut(df$var3, quantile(df$var3, (0:5)/5), include.lowest=T)
ggplot(df, aes(x=var1, y=var2, fill=var3, color=var4, size=var5^2)) +
geom_point(shape=21) +
scale_color_gradient(low="red", high="green") +
scale_size_continuous(range=c(1,12)) +
facet_grid(var3.cat ~ var4.cat)
Run Code Online (Sandbox Code Playgroud)
