由于NA而移除的轮廓多边形边框

时间:2012-12-02 07:34:22

标签: r maps shapefile ggplot2

我想在R中使用ggplot2绘制一个形状文件。更具体地说,我想在几个主要城市的每个区块中绘制%white。到目前为止,我和纽黑文合作过。问题是某些块未填充,在这种情况下%white = NA。 Ggplot自动以灰色绘制这些块。我想用白色画它们。

New Haven with grey NAs

c_opts <- theme(axis.text.x=element_blank(), 
axis.text.y=element_blank(), 
axis.title.x=element_blank(), 
axis.title.y=element_blank(), 
axis.ticks = element_blank(),
legend.text=element_text(size=10), 
legend.background=element_blank(), 
legend.key=element_rect(fill='transparent', colour=NA), 
panel.grid.major=element_line(colour='white'), 
panel.background=element_rect(fill='transparent', colour=NA),
legend.justification=c(0,0), 
legend.position=c(.15,.15),
legend.title=element_text(size=11, face='bold'))

map <- qplot(PolyCoordsY, PolyCoordsX, data=nh_geom, group=Poly_Name, fill = pc_nhwhite, geom="polygon", xlab = "", ylab = "", main = "New Haven") 
map + c_opts + scale_fill_gradient(name = "% White")

我可以通过在scale_fill_gradient参数中添加na.value = NA来排除NA。

map <- qplot(PolyCoordsY, PolyCoordsX, data=nh_geom, group=Poly_Name, fill = pc_nhwhite, geom="polygon", xlab = "", ylab = "", main = "New Haven") 
map + c_opts + scale_fill_gradient(name = "% White", na.value = NA)

New Haven with excluded NAs

虽然这会将NA块绘制为白色,但它也会排除这些块的多边形边框。有谁知道如何保持多边形轮廓?

1 个答案:

答案 0 :(得分:0)

如果没有可重复的数据集,我无法测试这是否适用于您的具体情况。

尝试将颜色传递给na.value,如下所示:

scale_fill_gradient(name = "% White",na.value="white")