2017-08-25 4 views
0

Ich benutze ggplot, um eine Karte zu erstellen, mit einem Gradienten zum Ausfüllen der verschiedenen Regionen basierend auf meinen Daten.Zu viele Linien gezeichnet für Kartenrahmen mit ggplot in R

Der Standard hat die Karte ohne Grenzlinien gezeichnet. Ich möchte sie einbeziehen und habe einen Code basierend auf this question geschrieben. Dies hat jedoch zu zu vielen Linien geführt, die alle Ecken der Regionen verbinden, denke ich. Wie vermeide ich das?

Im folgenden Code ist Datendatei, wo die Daten, die ich auf der Karte angezeigt werden soll, gespeichert ist, Schot ist das Shapefile.

Die Linie, die das Problem verursacht, ist geom_polygon.

ggplot() + 
    geom_map(data = datafile, aes(map_id = region, fill = datafile$"2007"), map = Scot) + 
    geom_polygon(data = Scot, aes(x = Scot$long, y = Scot$lat), colour = "gray", fill = NA) + 
    expand_limits(x = Scot$long, y=Scot$lat) + 
    scale_fill_gradient(low = ("lightyellow"), high = ("red"), limits = c(0,35000)) + 
    ggtitle("2007") + 
    coord_fixed(1.2) + 
    theme(axis.text.x = element_blank(), axis.text.y = element_blank(), 
    axis.ticks = element_blank(), axis.title.x = element_blank(), 
    axis.title.y = element_blank(), 
    panel.grid.major = element_blank(), panel.grid.minor = element_blank(), 
    panel.border = element_blank(), panel.background = element_blank(), 
    legend.title = element_text(face = "bold"), 
    plot.title = element_text(face = "bold", hjust = 0.5)) 

Example image of the problem

+0

Verwenden Sie nicht die $ Notation innerhalb der 'Aes'. Dies könnte die Ursache für Ihre Probleme sein. Für Ihre Spalte namens "2007", Surround es von \ 's –

Antwort

1

Try group = group auf Ihre geom_polygon Zeile hinzufügen. Und wie Richard Telford bemerkt, Sie müssen nicht die $ Notation innerhalb aes verwenden, da Sie bereits die Datenquelle über data = Scot angegeben:

... + geom_polygon(data = Scot, aes(x = long, y = lat, group = group), 
        colour = "gray", fill = NA) 

Hinweis: habe ich angenommen, der Schotte Datenrahmen durch stärk a erhalten wurde Spatial-Dataset einer Art, die immer eine Spalte namens "Gruppe" enthält. Wenn das nicht der Fall ist, suchen Sie nach der Spalte, die angibt, welche Punkte zu demselben Polygon gehören sollen. Die Hilfedatei für geom_polygon Staaten (Hervorhebung hinzugefügt):

Polygonen sind sehr ähnlich Pfade (wie durch geom_path gezeichnet), außer dass die Start- und Endpunkte verbunden sind und das Innere wird durch fill gefärbt. Die Gruppe Ästhetik bestimmt, welche Fälle zusammen in ein Polygon verbunden sind.

+0

Danke, das hat funktioniert (und ich auch die $ entfernt, danke an Sie und Richard für den Hinweis darauf). – Megan