Tengo un problema similar al @Mike en this question. La pregunta es cómo establecer los colores de contorno de las regiones en un diagrama de mapa.fronteras geom_map en ggplot2 - revisited
La solución propuesta es agregar un geom_polygon
para trazar los bordes. Esto funciona, siempre que se trace todo el área. Al intentar tratar de restringir a un subárea, los polígonos se dibujan de manera extraña (presumiblemente porque algunos vértices se caen). Utilizando el estándar geom_map
ejemplo:
# Create example data
ids <- factor(c("1.1", "2.1", "1.2", "2.2", "1.3", "2.3"))
values <- data.frame(id = ids, value = c(3, 3.1, 3.1, 3.2, 3.15, 3.5))
positions <- data.frame(
id = rep(ids, each = 4),
x = c(2, 1, 1.1, 2.2, 1, 0, 0.3, 1.1, 2.2, 1.1, 1.2, 2.5, 1.1, 0.3, 0.5, 1.2, 2.5, 1.2, 1.3, 2.7, 1.2, 0.5, 0.6, 1.3),
y = c(-0.5, 0, 1, 0.5, 0, 0.5, 1.5, 1, 0.5, 1, 2.1, 1.7, 1, 1.5, 2.2, 2.1, 1.7, 2.1, 3.2, 2.8, 2.1, 2.2, 3.3, 3.2)
)
# Plot data
ggplot(values, aes(fill = value)) +
geom_map(aes(map_id = id), map = positions) +
geom_polygon(aes(x,y,group=id), fill = NA, colour = 'red', data = positions) +
expand_limits(positions) +
ylim(0, 3)
Una posible solución está utilizando la estética de color en geom_map
y luego elegir manualmente el color del contorno con scale_colour_manual
, de la siguiente manera:
ggplot(values, aes(fill = value)) +
geom_map(aes(map_id = id, colour = 'white'), map = positions) +
scale_colour_manual(values=c('white')) +
expand_limits(positions) +
ylim(0, 3)
así que tengo dos preguntas:
- ¿Por qué
geom_polygon
no funciona correctamente cuando los límites del eje están restringidos? - ¿Hay una solución más elegante para colorear los contornos que la que se muestra aquí?
A continuación se muestran las salidas de trazado. Muchas gracias de antemano.
esto funciona perfectamente, gracias! Este es un detalle, pero ¿sabes la respuesta a mi segunda pregunta? ¿Por qué no puedo usar directamente el atributo 'color = white' en la función' geom_map'? – yellowcap
@yellowcap No sé, principalmente porque no estoy seguro de cuál es su problema específico en el segundo caso. – joran
@yellowcap Probablemente es demasiado tarde para que esto sea útil, pero desea 'color =" white "' en la llamada 'geom_map' pero no en la llamada' aes'. No es estético porque no depende de tus datos. Siempre es solo blanco. – Gregor