2013-06-24 4 views
0

j'ai un ensemble de données 3D que je veux tracer avec RGL telle quediscrétisation schéma de couleurs selon horodatages r

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

je voudrais attribuer des couleurs différentes pour différentes parties des données et essayé

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) 

Cependant, les couleurs ne sont pas discrétisation ... ce qui est logique que colorRampPalette crée une palette plutôt que de couleurs discrétisées! Fondamentalement, je veux que toutes les valeurs entre 73: 193 soient exclusivement noires, toutes entre 229: 373 pour être exclusivement vertes etc ... Je crains que je manque l'évidence mais je n'arrive pas à trouver la réponse. Y aurait-il une fonction comme colorRampPalette qui créerait des bandes de couleur discrétisées? Aussi, au cas où cela serait important, je ne veux pas que certaines valeurs soient tracées (par exemple entre 193 et ​​229).

Merci pour votre aide.

Répondre

1

Cela semble être une meilleure approche:

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 Demeurons décoloré.

enter image description here

Questions connexes