我使用以下代码在plotly中创建3d散点图:
library(plotly)
A <- c(50,20,0)
B <- c(50,0,30)
C <- c(50,0,0)
D <- c(50,20,30)
E <- c(0,0,30)
F <- c(0,20,0)
G <- c(0,0,0)
H <- c(0,20,30)
classes <- c("A","B","C","D",
"E","F","G","H")
conceptual <- rbind(data.frame(),A,B,C,D,
E,F,G,H)
colnames(conceptual) <- c("X","Y","Z")
conceptual$labels <- classes
scene = list(camera = list(eye = list(x = 2.5, y = -1.5, z = 1.25)))
p <- plot_ly(conceptual, x = ~X, y = ~Y, z = ~Z, text = ~labels) %>%
add_markers() %>%
add_text() %>%
layout(scene=scene,showlegend = FALSE)
p然后得到这个图:plot
我的问题是,我如何添加一条线,在轴上显示长方体的外侧?类似这样的东西:required plot
发布于 2017-11-02 01:00:39
library(plotly)
A <- c(50,20,0); B <- c(50,0,30); C <- c(50,0,0); D <- c(50,20,30)
E <- c(0,0,30); F <- c(0,20,0); G <- c(0,0,0); H <- c(0,20,30)
classes <- c("A","B","C","D","E","F","G","H")
conceptual <- rbind(data.frame(),A,B,C,D,E,F,G,H)
colnames(conceptual) <- c("X","Y","Z")
conceptual$labels <- classes
l1 <- subset(conceptual, labels %in% c("E","B"))
l2 <- subset(conceptual, labels %in% c("D","B"))
l3 <- subset(conceptual, labels %in% c("C","B"))
scene = list(camera = list(eye = list(x = 2.5, y = -1.5, z = 1.25)))
p <- plot_ly(conceptual, x = ~X, y = ~Y, z = ~Z, text = ~labels) %>%
add_markers() %>%
add_text() %>%
add_trace(x=~X, y=~Y, z=~Z, data=l1,
type='scatter3d', mode='lines',
line = list(color = "black", width = 4, dash='dash')) %>%
add_trace(x=~X, y=~Y, z=~Z, data=l2,
type='scatter3d', mode='lines',
line = list(color = "black", width = 4, dash='dash')) %>%
add_trace(x=~X, y=~Y, z=~Z, data=l3,
type='scatter3d', mode='lines',
line = list(color = "black", width = 4, dash='dash')) %>%
layout(scene=scene,showlegend = FALSE)
p

https://stackoverflow.com/questions/47052659
复制相似问题