RGL Plot3D: больше цветов, без повторов
При построении графиков с использованием rgl plot3D я использую что-то вроде этого:
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))