Nothing
## ----initial-clearPlot, eval=TRUE, echo=FALSE, fig.keep='none', message=FALSE----
quickPlot::clearPlot()
## ----load_files, eval=TRUE, echo=TRUE, message=FALSE, fig.height=2------------
# Make list of maps from package database to load, and what functions to use to load them
library(data.table)
library(terra)
library(quickPlot)
# omit forestAge and percentPine maps for simplicity
files <- system.file("maps", package = "quickPlot") |>
dir(full.names = TRUE, pattern = "tif")
filelist <- data.frame(file = files[-c(2, 5) ], stringsAsFactors = FALSE)
print(filelist)
# Load files to memory (using rasterToMemory), assign to a simList we call maps
maps <- lapply(filelist$file, function(x) rast(x))
names(maps) <- sapply(basename(filelist$file), function(x) {
strsplit(x, split = "\\.")[[1]][1]
})
# put into a single stack object in the simulation environment for ease of use below
landscape <- c(maps$DEM, maps$forestCover, maps$habitatQuality)
## ----first_plot, eval=TRUE, echo=TRUE, fig.height=2---------------------------
Plot(landscape, new = TRUE)
# make a SpatialPoints object
caribou <- terra::vect(cbind(x = stats::runif(1e2, -50, 50),
y = stats::runif(1e2, -50, 50)))
Plot(caribou)
Plot(caribou, addTo = "landscape$habitatQuality")
# from ?vect help file
x1 <- rbind(c(-18,-2), c(-14,5.5), c(1, 0), c(-14,-6))
x2 <- rbind(c(-1,0), c(14,6), c(16,0), c(14,-5.5))
x3 <- rbind(c(-12.5,0), c(0,6), c(4,0.5), c(1.5,-4.5))
hole <- rbind(c(8,0), c(10.5,1.3), c(12,0.2), c(10.5,-1.3))
z <- rbind(cbind(object=1, part=1, x1, hole=0), cbind(object=2, part=1, x3, hole=0),
cbind(object=3, part=1, x2, hole=0), cbind(object=3, part=1, hole, hole=1))
colnames(z)[3:4] <- c('x', 'y')
spP <- terra::vect(z, "polygons")
Plot(spP)
Plot(spP, addTo = "landscape$habitatQuality", gp = gpar(lwd = 2))
# from ?vect help file
z[z[, "hole"]==1, "object"] <- 4
sl <- vect(z[,1:4], "lines")
Plot(sl, gp = gpar(col = c("red", "blue"), lwd = 2), addTo = "landscape$DEM")
## ----mixing_layer_types, eval=TRUE, echo=TRUE, fig.height=5-------------------
clearPlot()
Plot(landscape, caribou, maps$DEM, spP, axes = TRUE,
gp = gpar(cex = 0.5), visualSqueeze = 0.65)
## ----ggplot, eval=TRUE, echo=TRUE, cache=FALSE, fig.height=2------------------
if (requireNamespace("ggplot2")) {
ggObj <- data.frame(x = stats::rnorm(1e3)) |> ggplot2::ggplot(ggplot2::aes(x = x)) +
ggplot2::geom_histogram()
clearPlot()
Plot(caribou, axes = "L", new = TRUE)
Plot(ggObj)
}
## ----base-objects, eval=FALSE, echo=TRUE, cache=FALSE, fig.height=2-----------
# baseObj <- rnorm(1e3)
# baseObj2 <- baseObj * 1.2 + rnorm(1e3)
# clearPlot()
# # Plot(baseObj, axes = "L", ylab = "Something meaningful")
# Plot(baseObj, baseObj2, addTo = "scatterplot", axes = TRUE)
# newPoints <- rnorm(10)
# newPoints2 <- newPoints * 1.2 + rnorm(10)
# Plot(newPoints, newPoints2, addTo = "scatterplot", col = "red")
## ----set_colours, eval=TRUE, echo=TRUE, fig.height=2--------------------------
# can change colour palette
clearPlot()
Plot(landscape) # original
# can use RColorBrewer if installed
habQualCols <- if (requireNamespace("RColorBrewer")) {
RColorBrewer::brewer.pal(9, "Spectral")
} else {
colorRampPalette(c("blue", "purple"))(9)
}
mapColours <- list(
DEM = topo.colors(50),
forestCover = colorRampPalette(c("blue", "orange", "purple", "red"))(50),
habitatQuality = habQualCols
)
setColors(landscape, n = 50) <- mapColours
Plot(landscape, new = TRUE) # oh, how pretty!
## ----gp_gpAxis_gpText, eval=TRUE, echo=TRUE, fig.height=2---------------------
clearPlot()
Plot(caribou, gpAxis = gpar(cex = 0.4), size = 1)
Plot(maps$DEM, gpText = gpar(cex = 0.4))
clearPlot()
Plot(maps$DEM, caribou, gpText = list(gpar(cex = 2), gpar(cex = 0.1)), new = TRUE)
## ----visualSqueeze, eval=TRUE, echo=TRUE, fig.height=2------------------------
# x axis gets cut off in pdf and html
clearPlot()
Plot(maps$DEM)
clearPlot()
Plot(maps$DEM, visualSqueeze = 0.6, new = TRUE)
## ----legendRange, eval=TRUE, echo=TRUE, fig.height=2--------------------------
clearPlot()
Plot(maps$DEM, legendRange = c(0, 500), new = TRUE)
## ----zoomExtent, eval=TRUE, echo=TRUE, fig.height=2---------------------------
Plot(maps$DEM, zoomExtent = terra::ext(c(-1, 10, -1, 20)), new = TRUE)
## ----arrows, eval=TRUE, echo=TRUE, fig.height=2-------------------------------
clearPlot()
Plot(maps$DEM)
Plot(sl, addTo = "maps$DEM", length = 0.2)
## ----new-as-list--------------------------------------------------------------
clearPlot()
Plot(landscape)
Plot(landscape, new = list(TRUE, FALSE, TRUE), axes = "L")
## ----simple_add, eval=TRUE, echo=TRUE, fig.height=3---------------------------
clearPlot()
Plot(landscape)
# can add a new plot to the plotting window
Plot(caribou, new = FALSE, axes = FALSE)
## ----add_with_rearrangement, eval=TRUE, echo=TRUE, fig.height=2---------------
clearPlot()
Plot(landscape)
# can add a new plot to the plotting window
Plot(caribou, new = FALSE, axes = FALSE)
## ----add_with_same_name, eval=TRUE, echo=TRUE, fig.height=2-------------------
clearPlot()
Plot(landscape)
landscape$forestCover[] = ((landscape$forestCover[] + 10) %% 30)
# can add a new plot to the plotting window
Plot(landscape, new = FALSE)
# note: zeros are treated as no colour by default.
# if this is not the correct behaviour, can use `zero.color`
Plot(landscape, new = FALSE, zero.color = "blue")
## ----speedup, eval=TRUE, echo=TRUE, fig.height=2------------------------------
system.time(Plot(landscape, caribou, maps$DEM, new = TRUE))
system.time(Plot(landscape, caribou, maps$DEM, speedup = 10, new = TRUE))
# can add a new plot to the plotting window
## ----add, eval=TRUE, echo=TRUE, fig.height=2----------------------------------
clearPlot()
Plot(landscape)
Plot(caribou, addTo = "landscape$DEM", size = 2)
## ----clearPlot, eval=TRUE, echo=TRUE, fig.height=2----------------------------
clearPlot()
Plot(caribou)
## ----clickValues, eval=FALSE, echo=TRUE---------------------------------------
# clearPlot()
# Plot(landscape)
# clickValues(3) # click at three locations on the Plot device
## ----clickExtent, eval=FALSE, echo=TRUE---------------------------------------
# clearPlot()
# Plot(landscape)
# clickExtent() # click at two locations on the Plot device
## ----rePlot, eval=FALSE, echo=TRUE, cache=FALSE-------------------------------
# rePlot()
# rePlot(4)
# rePlot(visualSqueeze = 1, axes = FALSE)
# rePlot(visualSqueeze = 0.7, axes = FALSE, cols = "Reds")
## ----Plot a .quickPlot object, eval=FALSE, echo=TRUE, cache=FALSE-------------
# clearPlot()
# plots <- Plot(landscape)
#
# # change values
# landscape$forestCover[landscape$habitatQuality > 0.9] <- 0
#
# Plot(plots)
# # same as:
# rePlot()
#
# # but can be combined with other objects
# Plot(caribou, plots)
# Plot(caribou, plots, sl)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.