[R-es] ggplot con gradientes complejos

Manuel Mendoza
Fri, 20 Sep 2019 08:29:45 -0000

Gracias Emilio. Si, son asimétricos porque se mueven en rangos distintos.
De hecho, miden cosas distintas, pero una muestra no puede ser positiva y
negativa a la vez. Me planteo multiplicar las positivas por 2 y al editar
el mapa corregirlo para que indique los valores reales. Eso funcionaría,
pero son muchos mapas y quizás haya una función en ggplot que evite el
problema directamente.
Manuel

El vie., 20 sept. 2019 a las 7:38, Emilio L. Cano (<emilopezcano en
gmail.com>)
escribió:

> Hola Manuel,
>
> Ten en cuenta que la intensidad del color depende de la escala de la
> variable. Limits = c(-200, 200) pone los que hay fuera con el color NA por
> defecto (gris). No estoy seguro pero creo que si los positivos no se
> distingue el color es porque es ?casi blanco?, supongo que debido a que los
> datos son muy asimétricos y los valores por debajo de -200 son muy grandes
> en valor absoluto con respecto a los que hay por encima de 200. Y por
> definición, es una escala de color que depende de la magnitud de la
> variable.
>
> Tal vez puedas mejorar la visualización cambiando el color del punto
> central (argumento ?mid?), en vez de blanco, por algún tono de rojo
> intermedio.
>
> Si esto no lo soluciona intenta pegar el ejemplo con un subconjunto de
> datos con el que se pueda reproducir (es fácil con datapasta+reprex:
> https://reprex.tidyverse.org/articles/articles/datapasta-reprex.html)
>
> Un saludo,
> Emilio
>
> > El 19 sept 2019, a las 18:34, Manuel Mendoza <mmendoza en
fulbrightmail.org>
> escribió:
> >
> > Muy buenas. Quiero hacer un mapa que me pinte en azul los valores
> negativos
> > y en rojo los positivos. Los negativos llegan hasta -400 y los
positivos
> > hasta 200. Si pongo  limits=c(-200, 200), me colorea bien los
positivos
> > (rojo), pero los negativos por debajo de -200 me los pone gris.  Si
pongo
> > limits=c(-400, 200), me colorea bien los negativos (azul), pero los
> > positivos apenas se ven. Necesito que me pinte los azules como el
> primero,
> > y los azules como el segundo.
> > Gracias
> >
> > Este es el código:
> >               ggplot(legend=FALSE)+
> >               theme(panel.background=element_blank())+
> >               theme(panel.grid.major = element_blank())+
> >               theme(panel.grid.minor = element_blank())+
> >
> > theme(axis.text.x=element_blank(),axis.text.y=element_blank())+
> >               theme(axis.ticks = element_blank()) + xlab("")
+ ylab("")+
> >
> >
geom_point(data=SGData2,aes(x=lon,y=lat,color=Ch7085),shape=15,size=1.5)
> +
> >              * scale_colour_gradient2(limits=c(-400, 200),low >
> "blue",high="red",midpoint=0*,
> >               guide="colourbar")+geom_path(data=world,
aes(x=long,
> > y=lat,group=group))+
> >               labs(title =  "ch7085")
> >
> >       [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es en r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>

	[[alternative HTML version deleted]]