无法创建地图(ggplot)和按属性着色

时间:2019-01-15 07:53:54

标签: r ggplot2

我有一个国家所有地区的shapefile。属性表包含有关每个区的各种信息。我的目标是简单地绘制地图,并通过属性表(称为索引)中一个变量的值来为每个区域多边形着色。

我当前的代码是:

ggplot() +
  geom_polygon(data=districts, aes(x=long,y=lat,group=group,
 fill=districts@data$index), fill=NA, color='grey',size=.5) +
  coord_equal() + theme_minimal() + 
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(), 
        axis.line = element_blank(), 
        axis.text.x = element_blank(), 
        axis.text.y = element_blank(),  
        axis.ticks = element_blank(), 
        axis.title.x = element_blank(),  
        axis.title.y = element_blank(),
        legend.position = 'bottom',
        legend.title=element_text(size=20) , 
legend.text=element_text(size=10)) 

但是,这会生成没有按属性填充的裸露区域地图。我尝试了更高级的ggplot参数中的底图详细信息以及geom_polygon()中的fill变量的变体,但这给出了错误“错误:美学必须长度为1或与数据相同(1647057):填充” 。

ggplot(data=districts, aes(x=long,y=lat,group=group), 
color='grey', size=.5) +
  geom_polygon(fill=districts@data$index) +
  coord_equal() + theme_minimal() + 
  theme(panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank(), 
    axis.line = element_blank(), 
    axis.text.x = element_blank(), 
    axis.text.y = element_blank(),  
    axis.ticks = element_blank(), 
    axis.title.x = element_blank(),  
    axis.title.y = element_blank(),
    legend.position = 'bottom',
    legend.title=element_text(size=20) , legend.text=element_text(size=10))

我在做什么错?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

尝试一下。 Int软件包随附tidy()函数。

broom