#' Generates global distribution plot of species richness
#'
#' @param data Dataframe (colnames:species, x, y). A dataframe containing species ID and occurrences (x, y).
#' @param res Numeric. Size of cells for distribution plot. Species richness is counted within each cell.
#' @return A global biodiversity plot of species richness. Longitudinal and latitudinal margins indicate mean diversity within bin = 'res'.
#' @importFrom raster raster rasterize
#' @importFrom sp SpatialPointsDataFrame
#' @importFrom viridisLite viridis
#' @importFrom rasterVis levelplot
#' @export
DistPlot <- function(data, res, write = FALSE, name = "simulation"){
r <- raster::raster(res = res)
pts <- sp::SpatialPointsDataFrame(cbind.data.frame(data$x, data$y), data = data)
div_plot <- rasterize(pts, r, 'species', function(x, ...) length(unique(x)))
coul <- viridisLite::viridis(100)
if(write == TRUE){
suppressWarnings(dir.create("./Figures/"))
png(paste("./Figures/", name, "_biodiversity_plot.png", sep = ""), width = 2400, height = 2000, res = 300)
suppressWarnings(print(rasterVis::levelplot(div_plot, margin = list(axis = TRUE, FUN = 'mean'), main = "Distribution of biodiversity", par.settings=list(panel.background=list(col="lightgrey")), col.regions = coul)))
dev.off()
}
suppressWarnings(rasterVis::levelplot(div_plot, margin = list(axis = TRUE, FUN = 'mean'), main = "Distribution of biodiversity", par.settings=list(panel.background=list(col="lightgrey")), col.regions = coul))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.