knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "figs/README-" )
# draw small readme icon library(mandelbrot) mb <- mandelbrot(xlim = c(-3, 1), c(-1.8, 1.8)) old_par <- par() par(bg = NA, mar=rep(0, 4)) image(mb, col = c(rgb(0, 0, 0, 0), "grey80"), axes = F) par <- old_par
Curious whether your favourite complex number is a member of the Mandelbrot set?
—No? Then probably you just want to draw pretty pictures.
Install from CRAN:
install.packages("mandelbrot")
Or get the development version:
devtools::install_github("blmoore/mandelbrot")
library(mandelbrot) mb <- mandelbrot() plot(mb)
Pretty colours:
mb <- mandelbrot(xlim = c(-0.8438146, -0.8226294), ylim = c(0.1963144, 0.2174996), iterations = 500, resolution = 800) cols <- mandelbrot_palette(RColorBrewer::brewer.pal(11, "Spectral"), fold = FALSE) plot(mb, col = cols)
Experiment with transforms:
par(mfrow = c(1, 2), pty = "s", mar = rep(0, 4)) plot(mb, col = cols, transform = "inverse") plot(mb, col = cols, transform = "log")
par <- old_par
Don't like image
? Convert to a data.frame
and use with ggplot2:
library(ggplot2) mb <- mandelbrot(xlim = c(-0.8335, -0.8325), ylim = c(0.205, 0.206), resolution = 1200L, iterations = 1000) # weird uneven palette made for a heatmap viz: # https://benjaminlmoore.wordpress.com/2015/04/09/recreating-the-vaccination-heatmaps-in-r/ cols <- c( colorRampPalette(c("#e7f0fa", "#c9e2f6", "#95cbee", "#0099dc", "#4ab04a", "#ffd73e"))(10), colorRampPalette(c("#eec73a", "#e29421", "#e29421", "#f05336","#ce472e"), bias=2)(90), "black") df <- as.data.frame(mb) ggplot(df, aes(x = x, y = y, fill = value)) + geom_raster(interpolate = TRUE) + theme_void() + scale_fill_gradientn(colours = cols, guide = "none")
mandelbrot0
is a faster interface for as.data.frame(mandelbrot(...))
.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.