使用R中的ggplot为地图边框绘制的线太多

时间:2017-08-25 15:11:15

标签: r ggplot2 mapping border

我正在使用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

1 个答案:

答案 0 :(得分:1)

尝试将group = group添加到geom_polygon行。正如Richard Telford所说,您不必在aes内使用$符号,因为您已经通过data = Scot指示了数据源:

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

注意:我假设Scot数据框是通过强化某种空间数据集获得的,该数据集总是包含一个名为“group”的列。如果不存在,请查找指示哪些点应属于同一多边形的列。 geom_polygon州的帮助文件(重点已添加):

  

多边形与路径非常相似(由geom_path绘制)除外   起点和终点相连,内部颜色为   填。 群体美学决定了哪些案例是相互联系的   一起变成多边形