Я долго пытался построить 3D-диаграмму в R. Я думаю, что я очень близок к тому, что я хочу. Я задал вопрос раньше. Теперь мне нужно знать только то, как преобразовать диаграммы рассеяния с точками в линейные. Я имею в виду, если только я могу соединить точки, это здорово для меня. То, что у меня сейчас выглядит, выглядит ниже:
Мне нужно соединить точки, которые лучше видят в 3D. Мне нужна отдельная линия для каждого цвета, и я хочу добавить легенду на график.
Я определил мои данные как:
df <- data.frame(a1 = c(489.4, 505.8, 525.8, 550.2, 576.6),
a2 = c(197.8, 301, 389.8, 502, 571.2),
b1 = c(546.8, 552.6, 558.4, 566.4, 575),
b2 = c(287.2, 305.8, 305.2, 334.4, 348.6), c1 = c(599.6, 611.4,
623.6, 658, 657.4), c2 = c(318.8, 423.2, 510.8, 662.4, 656),
d1 = c(616, 606.8, 600.2, 595.6, 595),
d2 = c(242.4, 292.8, 329.2, 378, 397.2),
e1 = c(582.4, 580, 579, 579, 579),
e2 = c(214, 255.4, 281.8, 303.8, 353.8))
colnames(df) <- rep(c("V1", "V2"), 5)
df.new <- rbind(df[, c(1, 2)],df[, c(3, 4)],df[, c(5, 6)],
df[, c(7, 8)],df[, c(9, 10)])
df.new$Group <- factor(rep(c("a","b","c","d","e"), each = 5))
df.new$Class <- rep(c(1:5), 5)
x=df.new$Class
y=V1
z=V2
Ниже мой код:
library(scatterplot3d) #colors
colors <- c("#999999", "#E69F00", "#56B4E9","#1B9E77", "#D95F02")
colors <- colors[as.numeric(df.new$Group)]#Others
xlabs <- c("[7,9]", "[10,12]", "[16,18]", "[19,21]", "[22,24]")
scatterplot3d(x,y,z, pch = 16, color=colors,main="Title",xlab
="Intervals",ylab = "", zlab = "Total time", x.ticklabs=xlabs)
text(8, 2.4, "c",cex = 1)
text(9, 2, "c",cex = 1)
Я действительно ценю, если кто-то может мне помочь в решении этой проблемы, с которой я боролся. Я знаю, что есть тип = 1, но он создает только один объединенный сюжет.