2015-04-03 2 views
1

При построении с помощью RGL Plot3D я использую что-то вроде этого:RGL Plot3D: больше цветов, No Повторяется

col = as.integer(as.factor(data[[input$colorBy]]))) 
plot3d(d[,1], d[,2], d[,3], type=type, col=col, add=TRUE) 

Однако, это будет повторяться цвета, если есть более чем 10 или около различных факторов. Есть ли способ расширить это, чтобы никогда не повторялись цвета, и (в идеале) цвета охватывают большой диапазон цветового пространства?

ответ

1

Существует несколько способов установить цвет самостоятельно. Я использовал значение z для установки цветов в приведенном ниже примере, но вы можете, конечно, установить цвета, используя группирующие переменные, преобразования и т. Д. Вот несколько вариантов:

# Fake data 
dat = data.frame(x=sort(runif(100,0,100)), y=runif(100,0,100)) 
dat$z = dat$x + dat$y 
dat = dat[order(dat$z), ] 

# hcl colors (I've scaled z so that the h value ("hue") ranges from 
# zero to 350 (where the hue scale ranges from 0 to 360 degrees)) 
plot3d(dat, col=hcl(350*(dat$z - min(dat$z))/(max(dat$z) - min(dat$z)), 100, 65)) 

# Create a color ramp function (from red to green to blue in this case) 
colFunc = colorRamp(c(rgb(1,0,0), rgb(0,1,0), rgb(0,0,1))) 
cols=colFunc(dat$z/max(dat$z)) 

plot3d(dat, col=rgb(cols, maxColorValue=255)) 
Смежные вопросы