I've been struggling with this problem for a few days. I have a shapefile that contains zip code polygons. I'm trying to plot a certain portion of it with a transparent color (alpha=0.7
), but some of the polygons at the edge of the plot end up with no color. If alpha=1.0
, all polygons are fine. The shapefile is stored as a Large SpatialPolygonsDataFrame
.
# Code that you can use (Thanks jbaums)
library(rgdal);
download.file('http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_0_countries.zip', {f <- tempfile()});
unzip(f, exdir=tempdir());
shp <- readOGR(tempdir(), 'ne_110m_admin_0_countries');
plot(shp, col='#FF000070', xlim=c(-100, 25))
For reference, my code looks like this :
#~~~ Read zip shapefile
in_zip.shp = "./Data/USZIP11_wSTCntyLLFIPS.shp"
zip_poly = readShapePoly(in_zip.shp)
#~~~ Set-up the mapping parameters
xlim = c(-82.0, -80.7)
ylim = c(25.5, 26.8)
#~~~ Works well
output_figure <- "./Good.png"
png(output_figure, width=5, height=4, units="in", res=1200)
par(mar=c(1.5, 1.8, 2.0, 0.7))
plot(xlim, ylim, type="n", xlim=xlim, ylim=ylim, axes=FALSE, xlab="", ylab="")
plot(zip_poly, col=rgb(1, 0, 0, alpha=1), xlim=xlim, ylim=ylim, lty=1.3, add=T)
box()
title(main="Good")
dev.off()
#~~~ Doesn't work well
output_figure <- "./Bad.png"
png(output_figure, width=5, height=4, units="in", res=1200)
par(mar=c(1.5, 1.8, 2.0, 0.7))
plot(xlim, ylim, type="n", xlim=xlim, ylim=ylim, axes=FALSE, xlab="", ylab="")
plot(zip_poly,col=rgb(1,0,0,alpha=0.7),xlim=xlim,ylim=ylim,lty=1.3,add=T)
box()
title(main="Bad")
dev.off()
Any tips would be appreciated. I attached figures so you can see what problem I get with my code. Thanks!