2012-01-07 13 views
16

¿Cómo puedo establecer el color de un único punto de datos en un diagrama de dispersión en R?Configuración del color para un punto de datos individual

estoy usando plot

+0

¿Desea trazar todos los puntos de datos en un color particular o solo 1 punto de datos específico? – jitendra

+0

quiero colorear un punto de datos específico en el gráfico de dispersión. – nit

Respuesta

10

utilizar el argumento col= cuales es vectorizado de manera que por ejemplo, en

plot(1:5, 1:5, col=1:5) 

se obtiene cinco puntos en cinco colores diferentes:

enter image description here

Puede usar la misma lógica para usar solo dos o tres colores entre sus puntos de datos. Comprender la indexación es clave en idiomas como R.

28

Para ampliar la respuesta de @Dirk Eddelbuettel, puede usar cualquier función para col en la llamada al plot. Por ejemplo, estos colores x==3 el punto rojo, dejando todos los demás negro:

x <- 1:5 
plot(x, x, col=ifelse(x==3, "red", "black")) 

example 1

Lo mismo sucede con el carácter punto pch, la expansión carácter cex, etc.

plot(x, x, col=ifelse(x==3, "red", "black"), 
    pch=ifelse(x==3, 19, 1), cex=ifelse(x==3, 2, 1)) 

example 2

+0

Sí, cualquier _expression_ produce un escalar o un vector reciclable. Así 'col = c (rep ("negro", 3), rep ("azul", 2))' tendría tres puntos negros seguidos de dos azules. –

+0

Bastante simple, pero nunca pensé usar ifelse aquí. Gracias por compartir +1 –

17

Hacer lo que quiere hacer a través del código es bastante fácil y othe rs han dado buenas formas de hacer esto. Sin embargo, si prefiere hacer clic en los puntos en los que desea cambiar el color, puede hacer esto usando 'identificar' junto con el comando 'puntos' para volver a hacer la réplica sobre esos puntos en un nuevo color.

# Make some data 
n <- 15 
x <- rnorm(n) 
y <- rnorm(n) 

# Plot the data 
plot(x,y) 

# This lets you click on the points you want to change 
# the color of. Right click and select "stop" when 
# you have clicked all the points you want 
pnt <- identify(x, y, plot = F) 

# This colors those points red 
points(x[pnt], y[pnt], col = "red") 

# identify beeps when you click. 
# Adding the following line before the 'identify' line will disable that. 
# options(locatorBell = FALSE) 
+0

También dason muy bueno. Gracias por compartir, no pensé en usar identificar así tampoco. +1 –

+1

identificar también es muy fácil de usar en R Studio. También es bueno para etiquetar puntos. Pero en lugar de hacer clic con el botón derecho para "detener", hay un botón etiquetado "detener" en la vista previa del diagrama de R Studio. –

+0

@Captain En mi versión de RStudio, en realidad dice "Finish" – Dason

Cuestiones relacionadas