README.md

HatchedPolygons

DOI R build
status

This R package creates a area filled by SpatialLines to allow for hatched areas in SpatialPolygons. This may be particularly useful when SpatialPolygons show holes but also for drawing hatched areas in leaflet Polygons.

To install it:

devtools::install_github("statnmap/HatchedPolygons")

Create a hatched area for SpatialPolygons in R

With {sp}

library(sp)
library(sf)
library(HatchedPolygons)
library(ggplot2)

# Create two polygons: second would be a hole inside the first
xy = cbind(
  x = c(13.4, 13.4, 13.6, 13.6, 13.4),
  y = c(48.9, 49, 49, 48.9, 48.9)
    )
hole.xy <- cbind(
  x = c(13.5, 13.5, 13.45, 13.45, 13.5),
  y = c(48.98, 48.92, 48.92, 48.98, 48.98)
  )

# Create SpatialPolygon
xy.sp <- SpatialPolygonsDataFrame(
  SpatialPolygons(list(
    Polygons(list(Polygon(xy), 
                  Polygon(hole.xy, hole = TRUE)), "1"),
    Polygons(list(Polygon(hole.xy + 0.2, hole = TRUE),
                  Polygon(xy + 0.2),
                  Polygon(xy + 0.35)), "2")
  )),
  data = data.frame(id = as.character(c(1, 2)))
)

# Allows for different hatch densities and directions for each polygon
xy.sp.hatch <- hatched.SpatialPolygons(xy.sp, density = c(40, 60), angle = c(45, 135))

# Draw again polygons with holes
par(bg = "lightblue", mar = c(2, 2, 0.5, 0.5))
plot(xy.sp, col = c("blue", "red"))
plot(xy.sp.hatch, col = c("cyan", "grey90")[as.numeric(xy.sp.hatch$ID)],
     lwd = 3, add = TRUE)

With {sf}

Note that the current implementation transforms sf object as sp, then back to sf

# Also with {sf}
xy.sf <- sf::st_as_sf(xy.sp) # simulate st_read()
xy.sf.hatch <- hatched.SpatialPolygons(xy.sf, density = c(40, 60), angle = c(45, 135))

# Plot with ggplot2
ggplot(xy.sf) +
  geom_sf(aes(colour = id), 
          fill = "transparent", size = 1.5) +
  geom_sf(data = xy.sf.hatch, 
          aes(colour = ID),
          size = 1) +
  guides(col = FALSE)

See documentation on the pkgdown website for details : https://statnmap.github.io/HatchedPolygons/

Hatched Polygons with Leaflet

Description of this function can be found on statnmap.com More on my website: Freelance - Courses and consulting in modeling with R

There is also a vignette:

vignette("leaflet_shading_polygon", package = "HatchedPolygons")

Citation: Sébastien Rochette. (2017, August 18). Hatched area in polygons with R - v0.1.0. Zenodo. http://doi.org/10.5281/zenodo.845493



statnmap/HatchedPolygons documentation built on April 20, 2023, 7:55 p.m.