4

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

带有灰色 NA 的纽黑文

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")

我可以通过将 na.value = NA 添加到 scale_fill_gradient 参数来排除 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)

排除 NA 的纽黑文

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

4

1 回答 1

0

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

尝试传递一种颜色来na.value喜欢这样:

scale_fill_gradient(name = "% White",na.value="white")
于 2012-12-02T21:49:31.717 回答