2017-08-25 240 views
0

我正在使用ggplot創建地圖,並根據我的數據使用漸變填充不同區域。在R中使用ggplot繪製的地圖邊框線太多

默認情況下,地圖中沒有繪製邊框線。我想包含它們,並已根據this question編寫了一些代碼。然而,我認爲這導致了太多的線條,這些線條連接着這些地區的所有角落。我如何避免這種情況?

在下面的代碼中,datafile是我要在地圖上顯示的數據的存儲位置,Scot是shapefile。

導致問題的行是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

不要在'aes'中使用$表示法。這可能是你的問題的原因。對於名爲'2007'的列,將其包括在 –

回答

1

嘗試增加group = group您geom_polygon線。正如理查德·德福說,你不必使用內部aes的$符號,因爲你已經通過data = Scot指示數據源:

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

注:我以爲是通過強化一個獲得的蘇格蘭人數據幀某種空間數據集,它總是包含一個名爲「group」的列。如果不存在,請查找指示哪些點應屬於同一個多邊形的列。對於geom_polygon國家的幫助文件(強調):

多邊形是非常相似的路徑(如geom_path繪製),除了 的起點和終點連接和內部被 填充顏色。 該組審美決定哪些案件 連在一起成多邊形

+0

謝謝,這已經起作用了(並且我也刪除了$,感謝你和理查德指出了這一點)。 – Megan