descargar - Usando dos gradientes de color de escala ggplot2
ggplot2 r install (1)
En primer lugar, tenga en cuenta que la razón por la que ggplot no fomenta esto es porque las tramas tienden a ser difíciles de interpretar.
Puede obtener sus dos escalas de gradiente de color, recurriendo a un poco de trampa. En geom_point ciertas formas (21 a 25) pueden tener tanto un relleno como un color. Puede explotar eso para crear una capa con una escala de "relleno" y otra con una escala de "color".
# dummy up data
dat1<-data.frame(log2=rnorm(50), p.value= runif(50))
dat2<-data.frame(log2=rnorm(50), p.value= runif(50))
# geom_point with two scales
p <- ggplot()
p <- p + geom_point(data=dat1, aes(x=p.value, y=log2, color=p.value), shape=21, size=3)
p <- p + scale_color_gradient(low="red", high="gray50")
p <- p + geom_point(data= dat2, aes(x=p.value, y=log2, shape=shp, fill=p.value), shape=21, size=2)
p <- p + scale_fill_gradient(low="gray90", high="blue")
Si hay alguno, creo que debe haber una solución muy fácil para esto. Tengo dos grandes marcos de datos que básicamente se ven así:
> data1[1,]
chromosome start end test ref position log2 p.value
13600 Y 10199251 10200750 533 616 10200000 0.2181711 0.00175895
...
> data2[1,]
chromosome start end test ref position log2 p.value
4080 Y 10197501 10202500 403 367 10200000 0.04113596 0.3149926
...
Estoy usando este código para trazar los dos marcos de datos en el mismo gráfico:
p <- ggplot() + geom_point(data=subset(data1, p.value >= glim[1]),
map=aes(x=position, y=log2, colour=p.value))
+ geom_point(data=subset(data2, p.value >= glim[1]), map=aes(x=position,
y=log2, colour=p.value))
Cuando estaba trazando marcos de datos individuales, estaba usando un degradado de color rojo-blanco para los valores en la columna "p.value". Usando esta línea:
p <- p + scale_colour_gradient(limits=glim, trans=''log10'', low="red",
high="white")
El problema central es: ahora con dos marcos de datos, ¿cómo puedo establecer un gradiente de color para data1 y otro para data2? Leí en una publicación anterior que no es posible usar dos escalas de color diferentes (ej. "Bajo =" para el primero y "alto =" para el segundo), pero en este caso es exactamente el mismo tipo de escala de color (Si no estoy mezclando la terminología). La sintaxis obviamente no es correcta, pero me gustaría hacer algo como esto:
p <- p + scale_colour_gradient(limits=glim, trans=''log10'', low="red",
high="white")
p <- p + scale_colour_gradient(limits=glim, trans=''log10'', low="blue",
high="white")