如何一个接一个地绘制多个图形

How to plot several graphs one after another

我想在一个 3d 坐标系中绘制我的图表。我可以在不定义 z 坐标的情况下连续绘制这些图(一个接一个)。

x = 460:650
y1 = rnorm(191, 5, 2)
y2 = rnorm(191, 4, 1)
y3 = rnorm(191, 2, 0.8)

plot(x, y1, col = "red", type = "l")
lines(x, y2, col = "green", add = T)
lines(x, y3, col = "blue", add = T)

这是一个示例数据集。目前我在同一个二维坐标系中绘制我的图表。我希望它们在同一个 3d 坐标系中。这意味着红色曲线应该是最前面的,蓝色曲线应该是最后一条曲线。所有这 3 个地块彼此之间的距离可以相同。

这是所有类型的丑陋,但我认为它可以满足您的要求。改编自 https://plot.ly/r/3d-line-plots/.

library(plotly) 
x = rep(460:650,3) 
y1 = rnorm(191, 5, 2)
y2 = rnorm(191, 4, 1)
y3 = rnorm(191, 3, 1)
z = c(rep(1,191),rep(2,191),rep(3,191))
z <- ordered(z, levels=c('1', '2', '3'))

y_all<-(c(y1,y2,y3))
plot_ly(x = ~x, y = ~y_all, z = ~z, type = 'scatter3d', mode = 'lines', color = ~z)

正如其他人提到的,不,你不能在没有定义一些 z 的情况下在 z-space 中绘图。在这里,您只需要一个分类 z 来设置内容,然后您可以告诉 plot_ly() 对其进行格式化 "nicely"

感谢您的帮助。我也决定定义 z。你是对的。不然就有点不雅了。

data = data.frame(x = c(460, 465, 470, 475, 480, 485, 490, 495, 500, 505, 510, 515, 520, 525, 530, 535, 540, 545, 550,
                        460, 465, 470, 475, 480, 485, 490, 495, 500, 505, 510, 515, 520, 525, 530, 535, 540, 545, 550,
                        460, 465, 470, 475, 480, 485, 490, 495, 500, 505, 510, 515, 520, 525, 530, 535, 540, 545, 550),
                  time = c(rep(0, 19), rep(0.1, 19), rep(0.2, 19)), values = c(80,104,138,188,212,247,287,324,359,366,393,417,397,371,364,345,321,319,295,
                                                                               80,104,138,188,212,247,287,324,359,366,393,417,397,371,364,345,321,319,295,
                                                                               80,104,138,188,212,247,287,324,359,366,393,417,397,371,364,345,321,319,295))
lines3D(data$x, data$time, data$values)

当我使用 lines3D 函数时,如何标记和定义轴?目前,轴仅标有 x、y 和 z。