我想在一个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)
这是示例数据集。此刻,我将所有图形绘制在相同的2d坐标系中。我希望它们在相同的3d坐标系中。意味着红色曲线应位于最前,蓝色曲线应位于最后。所有这三个图都可以具有相同的距离。
答案 0 :(得分:1)
这是所有类型的丑陋,但我认为它可以满足您的需求。改编自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空间中绘图。在这里,您只需要一个分类z来设置内容,然后您就可以告诉plot_ly()
对其进行“格式化”
答案 1 :(得分:0)
感谢您的帮助。我决定也定义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。