knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
Demonstrate how to create a map of model output.
Use ggplot
to create a map from the example data included in BCGcalc
.
The example data only includes data from Washington.
# Packages library(BCGcalc) library(ggplot2) library(readxl) library(BioMonTools) # Calculate BCG model ## Calculate Metrics df.samps.bugs <- read_excel(system.file("./extdata/Data_BCG_PugLowWilVal.xlsx" , package="BCGcalc") , guess_max = 10^6) ## Run Function myDF <- df.samps.bugs col_add_char <- c("INFRAORDER", "HABITAT", "ELEVATION_ATTR", "GRADIENT_ATTR" , "WSAREA_ATTR", "HABSTRUCT") col_add_num <- "UFC" myDF[, col_add_char] <- NA_character_ myDF[, col_add_num] <- NA_integer_ myCols <- c("Area_mi2", "SurfaceArea", "Density_m2", "Density_ft2", "Site_Type") df.metric.values.bugs <- metric.values(myDF, "bugs", fun.cols2keep=myCols) ## Import Rules df.rules <- read_excel(system.file("./extdata/Rules.xlsx" , package="BCGcalc") , sheet="Rules") ## Calculate Metric Memberships df.Metric.Membership <- BCG.Metric.Membership(df.metric.values.bugs, df.rules , col_SITE_TYPE = "INDEX_REGION") ## Calculate Level Memberships df.Level.Membership <- BCG.Level.Membership(df.Metric.Membership, df.rules) ## Run Function df.Levels <- BCG.Level.Assignment(df.Level.Membership) # Add Lat-Long ## Get unique stations df.stations <- as.data.frame(unique(df.samps.bugs[,c("SampleID" , "Latitude" , "Longitude" , "Index_Name" , "Index_Region" , "Site_Type")])) ## Merge df.map <- merge(df.Levels , df.stations , by.x="SampleID" , by.y="SampleID" , all.x=TRUE) ## Level1 Name to Character df.map$Lev.1.Name <- as.character(df.map$Lev.1.Name) # Palette, Color Blind ## http://www.cookbook-r.com/Graphs/Colors_(ggplot2)/ pal_cb <- c("#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7", "#999999") pal_bcg_old <- c("green", "cyan", "blue", "orange", "red") pal_bcg <- c("blue", "green", "gray", "yellow", "dark orange", "red") # Map ## Map of OR and WA m1 <- ggplot(data = subset(map_data("state"), region %in% c("washington"))) + geom_polygon(aes(x = long, y = lat, group = group) , fill = "gray90" , color = "black") + coord_fixed(1.3) + theme_void() ## Add Points m1 <- m1 + geom_point(data = df.map , aes(Longitude , Latitude , shape = Index_Name , color = Lev.1.Name), na.rm = TRUE) ## Change shape shp_solid <- c(17, 16) # solid triangle and circle m1 <- m1 + scale_shape_manual(name = "Site Type", values = shp_solid) ## Change colors m1 <- m1 + scale_colour_manual(name = "Level 1 Assignment" , values = pal_bcg) ## Map Title m1 <- m1 + labs(title="Pacific Northwest BCG" , subtitle="Example Samples, WA only") m1 <- m1 + theme(plot.title = element_text(hjust = 0.5) , plot.subtitle = element_text(hjust=0.5)) ## Display Map m1
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.