Skip to content

Instantly share code, notes, and snippets.

View z3tt's full-sized avatar
👨‍💻
Coding at home

Cédric Scherer z3tt

👨‍💻
Coding at home
View GitHub Profile
@z3tt
z3tt / population-treemap.R
Created October 23, 2025 12:32
A treemap of the world’s population by continent
library(ggplot2)
library(treemapify)
library(ggtext)
library(prismatic)
owid_urban <- readr::read_csv("https://www.ggplot2-uncharted.com/data/hyde.csv")
treemap <- owid_urban |>
sf::st_drop_geometry() |>
filter(!is.na(continent)) |>
@z3tt
z3tt / photo-palette.R
Created October 16, 2025 08:50
Recolor images using any palette
library(ggplot2)
library(patchwork)
# get photo
img <- magick::image_read("https://www.yan-holtz.com/img/team/YH_pic_square.png")
# retrieve lightness
c <- magick::image_channel(img)
img_df <- tibble::as_tibble(as.data.frame.table(drop(as.integer(c[[1]]))))
img_df <- dplyr::mutate(img_df, across(c(Var1, Var2), as.numeric))
@z3tt
z3tt / basic-gauge-ggplot.R
Created July 23, 2025 15:30
A basic gauge chart made with ggplot2 + coord_radial()
library(ggplot2)
value <- 7.3
ggplot() +
# Add gap to bottom
coord_radial(
start = 4/3 * pi, # 240°
end = 2/3 * pi, # 120°
expand = FALSE
@z3tt
z3tt / human-rights-protection-scores.R
Created December 29, 2022 18:51
Human Rights Protection Scores of USA and Germany
## packages
library(ggplot2)
library(dplyr)
library(tidyr)
library(ggbraid)
library(colorspace)
library(owidR)
# plus ggtext via namespace
@z3tt
z3tt / imp_berlin.R
Last active November 22, 2022 03:53
Imperviousness levels in and around Berlin, Germany
library(tidyverse)
library(sf)
library(terra)
library(stars)
library(ggspatial)
library(systemfonts)
library(patchwork)
register_variant(
name = "Input Mono Light",
@z3tt
z3tt / penguins_rainclouds.R
Last active September 23, 2025 22:17
Polished raincloud plot using the Palmer penguins data
library(dplyr)
library(forcats)
library(ggplot2)
library(palmerpenguins)
library(ggtext)
library(colorspace)
library(ragg)
url <- "https://raw.githubusercontent.com/allisonhorst/palmerpenguins/master/man/figures/lter_penguins.png"
img <- magick::image_read((url))
@z3tt
z3tt / 11_circular.R
Last active April 14, 2022 04:49
Create circular scatter plots of daily temperatures for selected cities
library(tidyverse)
## data:
## https://www.kaggle.com/datasets/sudalairajkumar/daily-temperature-of-major-cities?resource=download
temp <- read_csv(here::here("city_temperature.csv"))
## select a few interesting city around the world
temp_selected <-
temp %>%
#filter(str_detect(City, "New York|London|Helsinki|Shanghai|Rio|Jakarta|Cairo|Canberra|Delhi|Capetown|Hong Kong|Reykjavik")) %>%
@z3tt
z3tt / paygap_eustat_eu_dumbbell.Rmd
Last active March 24, 2022 21:15
Dumbbell Chart of Pay Gaps in Europe
---
title: "Gender Pay Gap: Dumbbell Plot (EU only)"
author:
- name: "Cédric Scherer"
url: www.cedricscherer.com
output:
distill::distill_article:
highlight: kate
code_folding: false
toc: true
@z3tt
z3tt / colors.R
Created November 5, 2021 15:22
Create custom ggplot scales
#' Function to extract Jupiter colors as hex codes
#'
#' @param ... Character names of colors
#'
#' @examples
#' jupiter_colors()
#' jupiter_colors("petrol")
#'
#' @export
jupiter_colors <- function(...) {
@z3tt
z3tt / bars_inside_labels.R
Last active October 29, 2023 04:17
Create colorful bar charts with percentage labels inside each bar
library(tidyverse)
library(systemfonts)
mpg_sum <- mpg %>%
## just use 2008 data
dplyr::filter(year == 2008) %>%
## turn into lumped factors with capitalized names
dplyr::mutate(
manufacturer = stringr::str_to_title(manufacturer),
manufacturer = forcats::fct_lump(manufacturer, n = 10)