由于NA而被删除的轮廓多边形边框
我想在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参数排除在NAS。
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.value
像这样:
scale_fill_gradient(name = "% White",na.value="white")
使用'ggplot()'而不是'qplot()'原来是个好主意。我可以通过在'ggplot'后面添加一个'geom_polygon()'参数来得到一个令人满意的解决方案,该参数是NAs的子集:'ggplot(aes(PolyCoordsY,PolyCoordsX,group = Poly_Name,fill = pc_nhwhite),data = nh_geom ,main =“New Haven”)+ geom_polygon()+ c_opts + scale_fill_gradient(name =“%White”,na.value = NA)+ geom_polygon(aes(PolyCoordsY,PolyCoordsX,color = NA),data = subset(nh_geom, is.na(pc_nhwhite)),fill =“white”,alpha = 0.5,linetype = 1,col =“gray”,cex = 0.25)' – user1869937
请提供一个可重复的数据集。另外,考虑使用'ggplot()'而不是'qplot()',因为它更好地处理涉及的绘图任务。 – metasequoia