我有一个国家所有地区的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))
我在做什么错?任何帮助表示赞赏。
答案 0 :(得分:0)
尝试一下。 Int
软件包随附tidy()
函数。
broom