Ich habe ein ähnliches Problem wie @Mike in this question. Die Frage ist, wie man die Umrissfarben der Regionen in einem Kartenplot einstellt.geom_map Grenzen in ggplot2 - revisited
Die vorgeschlagene Lösung dort ist eine geom_polygon
hinzufügen, um über die Grenzen zu plotten. Dies funktioniert, solange das gesamte Gebiet geplottet ist. Wenn Sie versuchen, sich auf einen Unterbereich zu beschränken, werden die Polygone seltsam gezeichnet (vermutlich, weil einige Scheitelpunkte fallen gelassen werden). Mit dem Standard geom_map
Beispiel:
# 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)
Eine mögliche Abhilfe in geom_map
die Farbe Ästhetik verwendet und dann manuell die Konturfarbe wählt mit scale_colour_manual
wie folgt:
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)
So habe ich zwei Fragen:
- Warum funktioniert
geom_polygon
nicht ordnungsgemäß, wenn die Achsenlimits eingeschränkt sind? - Gibt es eine elegantere Lösung, um die Umrisse zu färben als die hier gezeigte?
Unten sind die Plot-Ausgaben. Vielen Dank im Voraus.
das funktioniert perfekt, danke! Dies ist ein Detail, aber kennen Sie zufällig die Antwort auf meine zweite Frage? Warum kann ich das "color = white" Aestetic nicht direkt in der 'geom_map' Funktion verwenden? – yellowcap
@ yellowcap Ich weiß es nicht, hauptsächlich, weil ich nicht sicher bin, was Ihr spezifisches Problem im zweiten Fall ist. – joran
@yellowcap Wahrscheinlich viel zu spät, um dies hilfreich zu sein, aber Sie wollen 'color =" white "' im 'geom_map'-Aufruf, aber nicht im' aes'-Aufruf. Es ist keine Ästhetik, weil es nicht von Ihren Daten abhängt. Es ist immer nur weiß. – Gregor