1
我正在使用rgl包在3d中绘制线段。我想根据未被绘制的数据框中的值对线段进行颜色编码。我可以让线条变成彩色,但是每个线段似乎都是颜色的渐变。我怎样才能使每个细分市场一个纯色?此外,行不是基于我尝试使用的数据框中的值着色。我的函数适用于散点图,但我担心它无法很好地转换为细分。我的代码与我的测试数据一起发布如下。如何根据rgl中的数据框中的值对线段进行着色?
library("rgl")
library("rglwidget")
zz <- "
sequence x y z x2 y2 z2 col
a 1 5 1 100 1000 2 4
b 2 4 1 200 900 2 3
c 2 4 1 300 800 2 2
d 2 4 1 400 700 2 1
e 3 3 1 500 600 2 0
f 3 3 1 600 500 2 -1
g 4 2 1 700 400 2 -2
h 4 2 1 800 300 2 -3
I 4 2 1 900 200 2 -4
j 5 1 1 1000 100 2 -5"
data <- read.table(text=zz, header=TRUE)
w <- names(data[8])
gradient <- colorRampPalette(c("red", "orange", "yellow", "green", "blue", "violet"))
v <- gradient(10)[as.numeric(cut(data[[w]], breaks=10))]
segments3d(x=as.vector(t(log(data[,c(2,5)]))),
y=as.vector(t(data[,c(4,7)])),
z=as.vector(t(log(data[,c(3,6)]))),
axes=FALSE, col=v, plot=TRUE)
rgl.bbox(color="grey50", emission="grey50",
xat = log(10^((-1):6)), yat = c(1, 2, 3, 4), zat = log(10^((-1):6)), xlab=10^((-1):6), ylab = (1:4), zlab=10^((-1):6))
aspect3d(1,1,1)
真棒!非常感谢。在此代码的另一个版本中,我使用rglwidget,因为我使用WebGL来创建带有图形的网页。 – arprater
你不需要'rglwidget'包,它已经被合并到'rgl'中。 – user2554330