2017-01-25 49 views
0

是否可以将多层ScatterD3图叠加在一起?我无法在这些小插曲的任何地方找到它或者搜索StackExchange/Google。分层散布D3图?

我很好奇,因为人们已经能够使用ScatterD3制作PCA Vector Loading地块。如果可以将这个图层叠加到另一个图上(类似于ggplot2ggvis图层的可能值),则可以获得华丽且交互式的PCA图。此外,您可能能够勾勒出分数(因为当前点笔划不是选项)。

有没有人有任何见解或解决方法?

回答

0

这是可能的,但更困难。我会建议使用plotly包。您可以使用RStudio中的“视图”选项卡,并通过旋转更轻松地检查3D散点图。配色方案也很容易添加This post尝试解决类似问题,虽然不相同。一个很好的(免费)教程plotly可以找到here through DataCamp

+0

我想你可能误解了这个问题;我问的是ScatterD3软件包,而不是scatterplot3d。我知道,混淆名字的相似程度。 – Scott

+0

是的,我误解了你的问题,对此抱歉。由于'ScatterD'使用'ggplot2',因此'grid'图形,也许你可以试图改变R grid?这可能会让你的任务过度复杂,但如果我真的需要完成这个任务,那我就会去那里... –

0

Question answered here感谢ScatterD3的作者。要生成完整的PCA图,您需要重新定义被绘制的数据帧,如下所示:

library(FactoMineR) 
library (ScatterD3) 

out<-PCA(iris[,1:4],scale.unit = TRUE, graph=FALSE) 
    cc1<-data.frame(out$ind$coord) 
    cc2<-data.frame(out$var$coord) 

points <- data.frame(x = cc1$Dim.1, 
        y = cc1$Dim.2, 
        color = iris$Species, 
        lab = row.names(iris), 
        type = rep("point", 150)) 

arrows <- data.frame(x = cc2$Dim.1, 
        y = cc2$Dim.2, 
        color = "Blue", 
        lab = row.names(cc2), 
        type = rep("arrow", 4)) 

data1 <- rbind(points, arrows) 

scatterD3(data1, x = x, y = y, 
      lab = lab, type_var = data1$type, col_var = color)