In addition to @AdamMccurdy's answer: there are some possibilities to get the same color for the islands and adjacent background.
The first sets the fill color of the islands, and the background color is the same. But the grid lines are under the polygon and thus disappear.
The second attempt is to return the grid lines. It displays a background (which includes grid lines) on top of the panel (using panel.ontop = TRUE ). But this is a bit of a violin that adjusts alpha values to get the same background and color of the island.
The third sets the background and island color to the same (as in the first), then displays the grid lines on top of the panel. There are several ways to do this; here, I grab the grob grid lines from the original graph, and then draw them on top of the panel. Thus, the colors remain unchanged and do not need alpha transparency.
library(ggplot2) library (rgdal) library (rgeos) library(maptools) PG <- readOGR("iho.shp", layer = "iho") AG <- fortify(PG)
Method 1
bg = "grey92" ggplot() + geom_polygon(data = AG, aes(long, lat, group = group, fill = hole), colour = alpha("darkred", 1/2), size = 0.7) + scale_fill_manual(values = c("skyblue", bg)) + theme(panel.background = element_rect(fill = bg), legend.position = "none")

Method 2
ggplot() + geom_polygon(data = AG, aes(long, lat, group = group, fill = hole), colour = alpha("darkred", 1/2), size = 0.7) + scale_fill_manual(values = c("skyblue", "grey97")) + theme(panel.background = element_rect(fill = alpha("grey85", .5)), panel.ontop = TRUE, legend.position = "none")

Method 3
library(grid) bg <- "grey92" p <- ggplot() + geom_polygon(data = AG, aes(long, lat, group = group, fill = hole), colour = alpha("darkred", 1/2), size = 0.7) + scale_fill_manual(values = c("skyblue", bg)) + theme(panel.background = element_rect(fill = bg), legend.position = "none")
