0

我有一个 3d 数据集,我想用 rgl 绘制这样

library(rgl)
x = rnorm(2700,0,0.6)
y = rnorm(2700,0,0.7)
z = rnorm(2700,0,0.5)
plot3d(x,y,z)

我想为数据的不同部分分配不同的颜色并尝试

col1=colorRampPalette(c("black","green","red","blue","cyan"))
colorscheme=col1(2700)[c(c(73:193,409:481,937:1579),229:373,517:721,757:901,1615:1963)]
plot3d(x,y,z,col=colorcheme)

但是,颜色没有离散化......这是有道理的,因为 colorRampPalette 创建了一个调色板,而不是离散化的配色方案!基本上,我希望 73:193 之间的所有值都是黑色,229:373 之间的所有值都是绿色等等......我担心我错过了明显的但我找不到答案。会不会有一个函数就像colorRampPalette创建离散色带一样?另外,为了以防万一,我不希望绘制某些值(例如,在 193 和 229 之间)。

谢谢你的帮助。

4

1 回答 1

1

这似乎是一种更好的方法:

library(rgl)
x = rnorm(2700,0,0.6)
y = rnorm(2700,0,0.7)
z = rnorm(2700,0,0.5)
plot3d(x,y,z)

COLS <- rep(NA, 2700)
COLS[c(73:193,409:481,937:1579)] <- "black"
COLS[229:373] <- "green"
COLS[517:721] <- "red"
COLS[757:901] <- "blue"
COLS[1615:1963] <- "cyan"

plot3d(x,y,z,col=COLS)

NA 保持无色。

在此处输入图像描述

于 2013-06-24T15:41:27.680 回答