Considérese la siguiente trama de datos:leyenda colores uniformes con qplot
x = read.table(text = 'Lo Re Pe
1 T 33
1 F 22
1 H 11
2 T 22
2 F 22', header = TRUE)
y la figura siguiente:
qplot(factor(Lo), data=x, geom='bar', fill=Re, weight=Pe,
xlab='L', main='Title', ylab='Pe')
ahora esto trama de datos:
x <- read.table(text = 'Lo Re Pe
1 D 33
1 K 22
2 D 22
2 K 22', header=TRUE)
con el mismo qplot
declaración.
Los colores asignados a cada valor de Re
no son consistentes entre los trazados, por lo que es difícil comparar los trazados directamente.
¿Cómo se especifica que Re
valor T
debe ser siempre "Rojo", por ejemplo, y que Re
valor F
siempre debería ser "azul", por ejemplo, para que el comando qplot
siempre utiliza consistentes colores para cada Re
valor, independientemente del contenido del marco de datos? Hay un número finito y conocido de valores para Re
, por lo que podría especificarlos todos.
Probé el siguiente cuando la trama de datos contenida valores T
, F
y H
:
qplot(factor(Lo), data=x, geom='bar', fill=Re, weight=Pe,
xlab='Loci', main='Title', ylab='Pe',
scale_fill_manual(values=c("Blue","Red","Green"),labels=c("T","F","H")))
pero R informa de un error acerca de longitud incorrecta y no produce una trama.
La solución idealmente me permitiría especificar colores para todos los valores posibles de Re
, aunque todos estos pueden no estar presentes en el marco de datos.
tal vez quiere que nos proporcione un ejemplo reproducible? http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –
@ RomanLuštrik: Listo. Pregunta reelaborada por completo. – SabreWolfy
Creo que esto funcionará bien si solo te aseguras de usar factores con los mismos niveles y 'scale_colour_discrete (drop = FALSE)' –