diff --git a/.Rhistory b/.Rhistory
index 33fd003..df8f58e 100644
--- a/.Rhistory
+++ b/.Rhistory
@@ -172,3 +172,206 @@
 library(posterdown)
 library(posterdown)
 library(posterdown)
+library(ggplot2)
+library(ggspatial)
+library(ggplot2)
+library(rgdal)
+install.packages("rgdal")
+install.packages("sf")
+library(sf)
+canada <- read_sf("data/Canada.geojson")
+install.packages("ggspatial")
+library(ggspatial)
+library(ggplot2)
+library(ggspatial)
+library(sf)
+canada <- read_sf("data/Canada.geojson")
+ggplot(canada) +
+ggspatial::layer_spatial() +
+coord_sf() +
+library(ggplot2)
+library(ggspatial)
+library(sf)
+canada <- read_sf("data/Canada.geojson")
+ggplot() +
+ggspatial::layer_spatial(canada) +
+coord_sf() +
+View(canada)
+library(sp)
+library(rgeos)
+install.packages("rgeos")
+library(rgeos)
+canada <- readOGR("data/Canada.geojson")
+library(rgdal)
+canada <- readOGR("data/Canada.geojson")
+canada <- readOGR("data/Canada.geojson")
+ggplot() +
+ggspatial::layer_spatial(canada) +
+coord_sf() +
+library(ggplot2)
+library(ggplot2)
+library(ggspatial)
+library(rgdal)
+canada <- readOGR("data/Canada.geojson")
+ggplot() +
+ggspatial::layer_spatial(canada) +
+coord_sf()
+install.packages("ggthemes")
+library(posterdown)
+tinytex::pdflatex(choose.files())
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+par(mfrow=c(1,2))
+plot(rnorm(20))
+plot(cars)
+par(mfrow=c(2,1))
+plot(rnorm(20))
+plot(cars)
+library(ggplot2)
+library(ggspatial)
+library(ggthemes)
+library(sf)
+canada <- read_sf("data/Canada.geojson")
+ggplot() +
+ggspatial::layer_spatial(canada, fill = "white") +
+coord_sf() +
+theme_pander() +
+NULL
+library(ggplot2)
+library(ggspatial)
+library(ggthemes)
+library(sf)
+canada <- read_sf("data/Canada.geojson")
+ggplot() +
+ggspatial::layer_spatial(canada, fill = "grey") +
+coord_sf() +
+theme_pander() +
+NULL
+library(ggplot2)
+library(ggspatial)
+library(ggthemes)
+library(sf)
+canada <- read_sf("data/Canada.geojson")
+ggplot() +
+ggspatial::layer_spatial(canada, fill = "grey") +
+coord_sf() +
+theme_dark() +
+NULL
+library(ggplot2)
+library(ggspatial)
+library(ggthemes)
+library(sf)
+canada <- read_sf("data/Canada.geojson")
+ggplot() +
+ggspatial::layer_spatial(canada, fill = "grey") +
+coord_sf() +
+theme_fivethirtyeight() +
+NULL
+library(ggplot2)
+library(ggspatial)
+library(ggthemes)
+library(sf)
+canada <- read_sf("data/Canada.geojson")
+ggplot() +
+ggspatial::layer_spatial(canada, fill = "grey") +
+coord_sf() +
+theme_solarized() +
+NULL
+library(ggplot2)
+library(ggspatial)
+library(ggthemes)
+library(sf)
+canada <- read_sf("data/Canada.geojson")
+ggplot() +
+ggspatial::layer_spatial(canada, fill = "grey") +
+coord_sf() +
+theme_solarized() +
+theme(plot.margin = unit(0,1,1,0), "in") +
+NULL
+library(ggplot2)
+library(ggspatial)
+library(ggthemes)
+library(sf)
+canada <- read_sf("data/Canada.geojson")
+ggplot() +
+ggspatial::layer_spatial(canada, fill = "grey") +
+coord_sf() +
+theme_solarized() +
+theme(plot.margin = unit(c(0,1,1,0)), "in") +
+NULL
+library(ggplot2)
+library(ggspatial)
+library(ggthemes)
+library(sf)
+canada <- read_sf("data/Canada.geojson")
+ggplot() +
+ggspatial::layer_spatial(canada, fill = "grey") +
+coord_sf() +
+theme_solarized() +
+theme(plot.margin = unit(c(0,1,1,0), "in")) +
+NULL
+library(ggplot2)
+library(ggspatial)
+library(ggthemes)
+library(sf)
+canada <- read_sf("data/Canada.geojson")
+ggplot() +
+ggspatial::layer_spatial(canada, fill = "grey") +
+coord_sf() +
+theme_solarized() +
+theme(plot.margin = unit(c(0,0,0,0), "in")) +
+NULL
+tinytex::pdflatex(choose.files())
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+install.packages("citr")
+citr:::insert_citation()
+citr:::insert_citation()
+citr:::insert_citation()
+citr:::insert_citation()
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
+library(posterdown)
