Skip to content

Instantly share code, notes, and snippets.

View djnavarro's full-sized avatar

Danielle Navarro djnavarro

View GitHub Profile
@djnavarro
djnavarro / lissajous_transform.R
Created February 4, 2019 10:01
Tween between two lissajous curves using transformr
library(tidyverse)
library(transformr)
library(tweenr)
library(animation)
# function to generate lissajous curves in a format
# suitable for later tweening
lissajous <- function(a=1, b=1, w=1, d=pi/2, t0=-pi, t1=pi, n=100) {
tibble(
t = seq(t0, t1, length.out = n),
library(showtext)
library(fontr)
library(tidyverse)
library(transformr)
library(animation)
library(ggpolypath)
# use showfont to load the font
font_add_google("Allura")
@djnavarro
djnavarro / bb_gapminder.R
Created February 26, 2019 08:14
draws the gganimate gapminder example, using bbc style
# packages
library(tidyverse)
library(gganimate)
library(gapminder)
library(scales)
# modified version of the bbc_style function
# adapted from: https://github.com/bbc/bbplot
bbc_style2 <- function(font = "Helvetica") {
theme(
@djnavarro
djnavarro / bayes_rain_viewer.R
Created March 12, 2019 03:48
Uses the asciify package to draw the "Bayesian rain" animation in the RStudio viewer pane
#devtools::install_github("djnavarro/asciify")
library(asciify)
library(magrittr)
temporary <- function(file) {
temp_dir <- tempfile()
dir.create(temp_dir)
file.path(temp_dir, file)
}
library(geojsonio)
library(here)
library(broom)
reload <- FALSE
if(reload) {
spdf <- geojson_read(
x = here("unsw_map", "worldgeo.json"),
what = "sp"
)
@djnavarro
djnavarro / a_very_bad_thing.R
Created March 25, 2019 09:45
Probably the most malicious thing I've done with R
# operator that reverses the direction of assignment
# only if called from the global environment
`%>>%` <- function(x,y) {
if(sys.nframe() == 1) {
assign(deparse(substitute(y)), x, parent.frame())
} else {
assign(deparse(substitute(x)), y, parent.frame())
}
}
@djnavarro
djnavarro / mouse_to_cat.R
Created March 29, 2019 06:27
Transform mouse emoji into cat emoji
library(tidyverse)
library(fontr)
library(emojifont)
library(ggpolypath)
library(transformr)
library(animation)
library(Cairo)
# create the base images from cat emoji and mouse emoji!
cat <- glyph_polygon(ch = emoji("cat"), family = "EmojiOne")
@djnavarro
djnavarro / ggplot2_geomvector.R
Created March 30, 2019 03:30
Custom ggplot2 geom that plots a (subset of a) vector field
library(ggplot2)
library(dplyr)
library(tibble)
library(tidyr)
GeomVector <- ggproto("GeomVector", Geom,
required_aes = c("x", "y", "direction", "length"),
default_aes = aes(
@djnavarro
djnavarro / transition_filter_bayes.R
Created April 17, 2019 06:32
gganimated version of ASCII Bayes
library(tidyverse)
library(asciify)
library(gganimate)
p <- ascii_data("bayes.png") %>%
ascii_map(
alphabet = as.character(0:9),
rescale = .15) %>%
ascii_plot(charsize = 4)
@djnavarro
djnavarro / coord_trans_example.R
Last active May 13, 2019 09:57
example where coord_trans throws many warnings
# from section 7.5.1 of ggplot2 book
library(ggplot2)
base <- ggplot(diamonds, aes(carat, price)) +
stat_bin2d() +
geom_smooth(method = "lm") +
xlab(NULL) +
ylab(NULL) +
theme(legend.position = "none")