Radial rtistry
Generative art using ggplot2
![](/post/rtistry-with-contour/featured_hu048ffd46b97e5be6e4178d4d5f725d59_51429_720x2500_fit_q75_h2_lanczos_3.webp)
I’ve been obsessed with Ijeamaka Anyene’s art for months now. Her zine is gorgeous, and I’ve been antsy to try some of the techniques out.
Spokes: Pattern 01 Variants
# setup
library(tidyverse)
library(colorspace)
set.seed(246153)
library(showtext)
showtext_auto()
file <- sysfonts::font_files()
font_add("Nunito Light", "Nunito-Light.ttf")
font_add("Cormorant Garamond", "CormorantGaramond-Regular.ttf")
my_caption <- "Liz Roten | @LizRoten"
See original here.
lines <- tibble(
x = seq(0, 29, by = 0.2),
xend = rep(0,146),
y = runif(146, min = 5, max = 9),
yend = rep(0,146),
speed = 3
)
ggplot() +
geom_segment(data = lines,
aes(x = x,
y = y,
xend = xend,
yend = yend),
color = "white",
alpha = 0.5) +
geom_point(data = lines,
aes(x = x,
y = y),
color = "white") +
coord_polar() +
scale_x_continuous(limits = c(0, 29)) +
# scale_y_continuous(limits = c(-1, 10)) +
labs(caption = my_caption) +
theme_void() +
theme(plot.background = element_rect(fill = "#14342B",
color = NA),
panel.background = element_rect(fill = "#14342B",
color = NA),
plot.caption = element_text(family = "Nunito Light",
color = "white",
size = 12),
plot.margin = unit(c(.5, .5, .2, .5), "cm")
)
![](https://www.lizroten.com/post/rtistry-with-contour/index_files/figure-html/unnamed-chunk-3-1.png)
Spokes: Pattern 10 Variants
See original here.
increment = .05
circle_1 = tibble(
x = seq(from = 0, to = 5, by = increment),
xend = seq(from = 0, to = 5, by = increment),
y = 0,
yend = 1.4,
type = LETTERS[1])
circle_2 = tibble(
x = seq(from = 0, to = 5, by = increment + increment),
xend = seq(from = 0, to = 5, by = increment + increment),
y = 1.5,
yend = 2.9,
type = LETTERS[2])
circle_3 = tibble(
x = seq(from = 0, to = 5, by = increment ),
xend = seq(from = 0, to = 5, by = increment ),
y = 3,
yend = 4.5,
type = LETTERS[3])
palette_values = c("#94524A", "#8d667e", "#39355c")
bind_rows(circle_1, circle_2, circle_3) %>%
ggplot(.) +
geom_segment(aes(x = x,
y = y,
xend = xend,
yend = yend,
color = type),
show.legend = F) +
scale_color_manual(values = palette_values) +
labs(caption = my_caption) +
coord_polar() +
theme_void() +
theme(
# plot.background = element_rect(fill = "#565254",
# color = NA,
# size = 0),
# panel.background = element_rect(fill = "#565254",
# color = NA,
# size = 0),
plot.caption = element_text(family = "Nunito Light",
color = "black",
hjust = 1,
size = 14),
plot.caption.position = "plot",
plot.margin = unit(c(.5, .5, .5, .5), "cm")
)
![](https://www.lizroten.com/post/rtistry-with-contour/index_files/figure-html/unnamed-chunk-4-1.png)
increment = .05
circle_1 = tibble(
x = seq(from = 0, to = 5, by = increment),
xend = seq(from = 0, to = 5, by = increment),
y = 0,
yend = 1.5,
type = LETTERS[1])
circle_2 = tibble(
x = seq(from = 0, to = 5, by = increment),
xend = seq(from = 0, to = 5, by = increment),
y = 1.5,
yend = 3,
type = LETTERS[2])
circle_3 = tibble(
x = seq(from = 0, to = 5, by = increment ),
xend = seq(from = 0, to = 5, by = increment ),
y = 3,
yend = 4.5,
type = LETTERS[3])
palette_values = c("#7A443E",
colorspace::lighten("#7A443E", 0.5),
colorspace::lighten("#7A443E", 0.8))
bind_rows(circle_1, circle_2, circle_3) %>%
ggplot(.) +
geom_segment(aes(x = x,
y = y,
xend = xend,
yend = yend,
color = type),
show.legend = F) +
scale_color_manual(values = palette_values) +
labs(caption = my_caption) +
coord_polar() +
theme_void() +
theme(
plot.caption = element_text(family = "Nunito Light",
color = "black",
hjust = 1,
size = 14),
plot.caption.position = "plot",
plot.margin = unit(c(.5, .5, .5, .5), "cm")
)
![](https://www.lizroten.com/post/rtistry-with-contour/index_files/figure-html/unnamed-chunk-5-1.png)
Florals
I fell in love with the opening slide in Ijeamaka Anyene’s talk at RLadies Johannesburg, so I wanted to give it a try!
set.seed(246153)
burst <- tibble(
x = seq(0, 10, by = 0.3),
xend = seq(0,10, by = 0.3),
y = 0,
yend = 0.4,
yend_jitt = jitter(yend, 2.6),
yend_jitt_point = yend_jitt
)
plot_burst <- ggplot() +
geom_segment(data = burst,
aes(x = x,
y = y,
xend = xend,
yend = yend_jitt),
color = "#F4AC32",
lwd = 0.5) +
geom_point(data = burst,
aes(x = x,
y = yend_jitt),
color = "#F4AC32",
size = 1.5
) +
coord_polar() +
theme_void()
bursts <- quote(expr = {cowplot::draw_plot(plot_burst,
scale = runif(1, min = 1.2, max = 3),
x = runif(1, min = 0, max = 10),
y = runif(1, min = 0, max = 5))})
plot_all <- cowplot::ggdraw(xlim = c(0,12),
ylim = c(0,6)) +
eval(bursts) +
eval(bursts) +
eval(bursts) +
eval(bursts) +
eval(bursts) +
eval(bursts) +
eval(bursts) +
eval(bursts) +
eval(bursts) +
labs(caption = my_caption) +
theme(plot.background = element_rect(fill = "#565254",
color = NA,
size = 0),
panel.background = element_rect(fill = "#565254",
color = NA,
size = 0),
plot.caption = element_text(family = "Nunito Light",
color = "white",
hjust = 1,
size = 14),
plot.caption.position = "plot",
plot.margin = unit(c(.5, .5, .5, .5), "cm")
)
plot_all
![](https://www.lizroten.com/post/rtistry-with-contour/index_files/figure-html/unnamed-chunk-6-1.png)
See also
- Ijeamaka Anyene’s fantastic zine
- Colors via https://coolors.co/