Awesome
⚠️HEADS UP: This readme is no longer maintained. Visit www.allisonhorst.com for my data science / stats / R artwork.⚠️
Just added!
Lowndes & Çetinkaya-Rundel 2022 RStudio Conference Keynote: "Hello, Quarto"
The following illustrations are from Julia Lowndes and Mine Çetinkaya-Rundel's keynote talk "Hello, Quarto" at the 2022 RStudio Conference in Washington, D.C.
Please credit the images below using: "Artwork from "Hello, Quarto" keynote by Julia Lowndes and Mine Çetinkaya-Rundel, presented at RStudio Conference 2022. Illustrated by Allison Horst."
Alt-text: One penguin standing on another penguin's shoulders in a snowscape, looking through a telescope at a Quarto logo "moon" in the night sky.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/julie-mine-quarto-keynote/penguins_telescope_2.png" width="700">Alt-text: Two penguins in a room made of ice, looking out a window. One penguin is holding an icicle as a pointer, pointing at a Quarto logo "moon" in the sky, while the other penguin looks on.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/julie-mine-quarto-keynote/penguins_quarto_teach.png" width="700">Alt-text: Two happy penguins taking a selfie together in a snowy landscape.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/julie-mine-quarto-keynote/quarto_share.png" width="700">Alt-text: Two excited penguins diving off of an iceberg into the ocean. A Quarto logo "moon" in the sky is reflected in the water that they're diving into.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/julie-mine-quarto-keynote/reimagine_quarto_twopenguins.png" width="700">Alt-text: Two penguins standing on an iceberg at dawn, viewed from behind, with their arms around each others' shoulders. A Quarto logo "moon" is near the horizon.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/julie-mine-quarto-keynote/quarto_thankyou.png" width="700">Alt-text: A schematic representing rendering of Quarto documents from .qmd, to knitr or jupyter, to plain text markdown, then converted by pandoc into any number of output types including html, PDF, or Word document.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/julie-mine-quarto-keynote/qmd_render_schema.png" width="700">Alt-text: A schematic representing the multi-language input (e.g. Python, R, Observable, Julia) and multi-format output (e.g. PDF, html, Word documents, and more) versatility of Quarto.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/julie-mine-quarto-keynote/quarto_schematic.png" width="700">Alt-text: Two penguins looking happily up at a Quarto logo "meteor" that is flying overhead.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/julie-mine-quarto-keynote/penguins_meteor.png" width="700">Alt-text: A meteor where the head of the meteor is the Quarto logo.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/julie-mine-quarto-keynote/quarto_meteor_1.png" width="700">Alt-text: A coloring book illustration of two penguins, one on the other's shoulders, standing on an iceberg while looking through a telescope at the Quarto logo "moon" in the night sky.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/julie-mine-quarto-keynote/penguins-coloring.jpg" width="700">Hello!
This repo contains my #rstats, data science & stats illustrations shared on my twitter account (@allison_horst).
All of this artwork is 100% available (and encouraged!) for open use by CC-BY license. That means: Hooray! I'm so happy that you want to share this artwork - especially if it helps when teaching R/rstats/stats. For most of the artwork you can just cite with "Artwork by @allison_horst". Please note some series where a different citation is requested (e.g. for collaborative projects).
This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.
Alternative text (in progress)
Please include alt-text when you use or share these illustrations. I'm working on adding alt-text right above each image - feel free to update / improve on the alt-text I've included. Also, please share suggestions to improve alt-text as issues - I greatly appreciate your feedback and suggestions, and welcome input on how I can make these illustrations accessible for everyone.
Is the artwork useful for your teaching materials? I would be so grateful if you would...
Donate!
This artwork is available for free to anyone who wants to use it for your teaching, learning, presentations, and more. If you are a teacher and feel that your course benefits from the artwork, and you can do so without stress or burden, please consider a donation to <a href="https://www.instagram.com/indigenouswomenhike/?hl=en">Indigenous Women Hike</a>. There are a number of ways to donate to Indigenous Women Hike, see options (including PayPal & Venmo) here: https://linktr.ee/iwh.
Fill out this form so I know where & how it's getting used!
It would be wonderful to include information about where and how this artwork is being used for my reviews. I would be so grateful if you could complete this very short (5 questions) Google Form, this will really help me out!
Questionnaire: Allison Horst R/stats artwork use
Other recent additions
GitHub Illustrated Series (a collaboration for the Openscapes blog with Dr. Julia Lowndes!)
Please cite the following GitHub Illustrated Series as: "Illustrations from the Openscapes blog GitHub for supporting, reusing, contributing, and failing safely by Allison Horst and Julia Lowndes"
1. Why GitHub? #1
Alt-text:
A row of 6 cute smiling monsters celebrating using GitHub. The first, wearing a climbing harness labeled “Me” is high-fiving another whose harness says “Future Me”. Others hold a box of snacks that are tacos, a map, and a rope. Text above the monsters quotes Jenny Bryan: “Collaboration is the most compelling reason to manage a project with Git and GitHub. My definition of collaboration includes hands-on participation by multiple people, including your past and future self, as well as an asymmetric model, in which some people are active makers and others only read or review.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/github-illustrated-series/github_friends.png" width="700">2. Why GitHub? #2
Alt-text:
On the left is a quote from Hadley Wickham and Jenny Bryan that says “Using a Git commit is like using anchors and other protection when climbing…if you make a mistake you can’t fall past the previous commit. Commits are also helpful to others, because they show your journey, not just the destination.” On the right, two little monsters climb a cliff face. Their ropes are secured by several anchors, each labeled “Commit”. Three monsters on the ground support the climbers.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/github-illustrated-series/github_wickham_bryan_git_quote.png" width="700">3. GitHub helps streamline our work.
Alt-text:
Left panel, against a blue sky with white clouds, a confident-looking monster climbs a rock face. Their rope’s anchors, secured with carabiners, are labeled from bottom to top and say “Initial commit”, “Data Cleaned”, “Analysis completed”. Another anchor on their harness, ready to place, is labeled “Manuscript drafted”. Right panel, against a gray sky with rain and lightning, a stressed-looking monster climbs a rock face. Their rope has a knot, is frayed, and is looped around one foot. Their anchors, placed haphazardly and not well-secured, are labeled things like “analysis_final_v2.xls”, “analysis_final_final.xls”, and “ignore_this.xls”. Text above the left panel says “When working with GitHub we can navigate with more obvious, safe, streamlined routes that let us focus on the science-y things we want to do…” Text above the right panel says: “...but working without GitHub can be disorienting, with too much time spent sifting through past work to figure out next steps forward.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/github-illustrated-series/github_compare_text.png" width="700">4. GitHub helps us support
Alt-text:
Four little monsters on grass support another monster starting their climb up a rock face. The climber’s harness is labeled “Coder”, the belayer wears a harness labeled “Code review”, two others consulting a book and route map wear caps labeled “Documentation” and “Reuse”, and another brings a box labeled “Project management and snacks”.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/github-illustrated-series/github_groundcrew_text.png" width="700">5. GitHub helps us reuse
Alt-text:
Two monsters consult a book with routes labeled “Existing routes” and “Our route” with warning information - images of lightning, a snake, and rocks falling - and notes on the facing page, while looking at the rock face they plan to climb. In the distance, one monster belays another who is climbing.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/github-illustrated-series/github_reuse.jpg" width="700">6. GitHub helps us contribute
Alt-text:
A close-up rear view of a monster climbing a rock face, clicking into an anchor point, with the word “Click!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/github-illustrated-series/github_clip.png" width="700">7. GitHub helps us fail safely
Alt-text:
A confidently smiling monster is falling from a rock overhang, while secured by four anchors, each labeled “Commit”.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/github-illustrated-series/github_fall.png" width="700">8. Harness the power of GitHub
Alt-text:
Rear-view of three well-prepared monsters arriving at a climb. They have route maps, binoculars, ropes, backpacks, and a box of snacks. The middle monster has a GitHub Octocat image on their backpack. In the distance, several monsters are at different stages of ascending, with one at the summit, and others supporting them from the base.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/github-illustrated-series/github_scoping.jpeg" width="700">9. GitHub for the win!
Alt-text:
Partial rear view of a monster with image focusing on their safety harness with a GitHub Octocat logo, chalk bag, carabiners, and rope.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/github-illustrated-series/github_harness.jpeg" width="700">Intro to ACF (autocorrelation function) in time series data:
Thank you to Rob Hyndman for feedback & suggestions on this series!
Autocorrelation series #1
Alt-text: A line of related fuzzy monsters that ranges from more distant relatives (toward the left) to the current generation on the right. Several more recent generations are labeled, from “ME” on the far right, then “MY PARENT”, “MY GRANDPARENT”, “MY GREAT-GRANDPARENT” and “MY GREAT-GREAT GRANDPARENT” moving toward the left. The current generation monster on the left is saying “Hello! Meet some of my ancestors.” Stylized text at the top reads “intro to the autocorrelation function (ACF).”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/acf_1.jpg" width="700">Autocorrelation series #2
Alt-text:
A friendly looking ancestral line of five monsters of simple shapes and varying color, from “My great-great grandparent” on the left to “Me!” on the right. Text says “In our family monsters tend to be a little similar to their parent and great-grandparent, very different from their grandparent, very similar to their great-great grandparent." The two monsters on the ends (great-great grandparent and current generation” are very similar in color and shape, and there is an arrow between them with text “lag = 4 generations. We are very similar!” The monsters separated by two generations (“grandparent” and current generation) are very different in color and shape, with text reading “lag = 2 generations. We are very different!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/acf_2.jpg" width="700">Autocorrelation series #3
Alt-text: A long series of friendly looking monsters representing generations in their family, of varying shape and color. Those separated by 4 generations are very similar in shape and color. Those separated by two generations are very dissimilar in shape and color. Text reads: “The autocorrelation function (ACF) is a plot of autocorrelation between a variable and itself separated by specified lags (in our case, generations). Let’s build one!” There is an empty plot area below.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/acf_3.jpg" width="700">Autocorrelation series #4
Alt-text: A long series of friendly looking monsters representing generations of their family. An arc with “1” is between each subsequent monster, indicating they are separated by one generation. The text reads “At lag = 1, we find the correlation between monsters and their parent. They are somewhat positively correlated.” The ACF plot area now has a single slightly positive bar (indicating the slight positive correlation) at a value of 1 lag on the x-axis. Additional text reads “Note: since the ACF at Lag = 0 is always 1, it is often excluded.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/acf_4.jpg" width="700">Autocorrelation series #5
Alt-text: A long series of friendly looking monsters representing generations of their family. An arc with “2” is drawn between each monster and the one at a distance of 2 generations from it (lag = 2). Text reads “At lag = 2, we find the correlation between monsters and their grandparent. Since they tend to be very different, we find a negative correlation at lag = 2.” The ACF plot now has an additional negative bar at Lag = 2, indicating the negative correlation between each monster and their grandparent.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/acf_5.jpg" width="700">Autocorrelation series #6
Alt-text: A long series of friendly looking monsters representing generations of their family. An arc with “3” is drawn between each monster and the one at a distance of 3 generations from it (lag = 3). Text reads “At lag = 3, we find the correlation between monsters and their great-grandparent. They are slightly positively correlated.” The ACF plot now has an additional slightly positive bar at Lag = 3, indicating the slight positive correlation between each monster and their great-grandparent.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/acf_6.jpg" width="700">Autocorrelation series #7
Alt-text: A long series of friendly looking monsters representing generations of their family. An arc with “4” is drawn between each monster and the one at a distance of 4 generations from it (lag = 4). Text reads “At lag = 4, we find the correlation between monsters and their great-great-grandparent. They tend to be verys similar (there is a positive correlation.)” The ACF plot now has an additional positive bar at Lag = 4, indicating the positive correlation between each monster and their great-great-grandparent.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/acf_7.jpg" width="700">Autocorrelation series #8
Alt-text: A long time series of friendly looking monsters representing generations of their family. Monsters separated by 4 generations are very similar, and those separated by 2 generations are very different. An autocorrelation function plot is show below the monsters, revealing positive correlations at lag = 4 and 8, negative correlations at lag = 2 and 5, and smaller positive correlations for other lags. The text reads “and we continue finding the correlations as we increase the lag (generations) between the monsters…”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/acf_8.jpg" width="700">Autocorrelation series #9
Alt-text: Three very similar blue round monsters standing next to each other, looking very happy and with little hearts between them, representing monsters separated by 4 generations (so they are very similar). There is an example ACF function below them showing positive correlations at lag = 4 and 8. Text reads “In summary: the autocorrelation function (ACF) tells us the correlation between observations and those that came before them, separated by different lags (here, monster generations)!
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/acf_9.jpg" width="700">Workflows that shred...
Alt-text: A cartoon of a cracked glass cube looking frustrated with casts on its arm and leg, with bandaids on it, containing “setwd”, looks on at a metal riveted cube labeled “R Proj” holding a skateboard looking sympathetic, and a smaller cube with a helmet on labeled “here” doing a trick on a skateboard.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/cracked_setwd.png" width="700">Tidy Data series (a collaboration for the Openscapes blog with Dr. Julia Lowndes!)
Please cite the following Tidy Data illustrations as: "Illustrations from the Openscapes blog Tidy Data for reproducibility, efficiency, and collaboration by Julia Lowndes and Allison Horst"
- What is tidy data?
Alt-text: Stylized text providing an overview of Tidy Data. The top reads “Tidy data is a standard way of mapping the meaning of a dataset to its structure. - Hadley Wickham.” On the left reads “In tidy data: each variable forms a column; each observation forms a row; each cell is a single measurement.” There is an example table on the lower right with columns ‘id’, ‘name’ and ‘color’ with observations for different cats, illustrating tidy data structure.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/tidydata_1.jpg" width="700">- Like families...
Alt-text:
There are two sets of anthropomorphized data tables. The top group of three tables are all rectangular and smiling, with a shared speech bubble reading “our columns are variables and our rows are observations!”. Text to the left of that group reads “The standard structure of tidy data means that “tidy datasets are all alike…” The lower group of four tables are all different shapes, look ragged and concerned, and have different speech bubbles reading (from left to right) “my column are values and my rows are variables”, “I have variables in columns AND in rows”, “I have multiple variables in a single column”, and “I don’t even KNOW what my deal is.” Next to the frazzled data tables is text “...but every messy dataset is messy in its own way. -Hadley Wickham.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/tidydata_2.jpg" width="700">- Comparison of work benches:
Alt-text: On the left is a happy cute fuzzy monster holding a rectangular data frame with a tool that fits the data frame shape. On the workbench behind the monster are other data frames of similar rectangular shape, and neatly arranged tools that also look like they would fit those data frames. The workbench looks uncluttered and tidy. The text above the tidy workbench reads “When working with tidy data, we can use the same tools in similar ways for different datasets…” On the right is a cute monster looking very frustrated, using duct tape and other tools to haphazardly tie data tables together, each in a different way. The monster is in front of a messy, cluttered workbench. The text above the frustrated monster reads “...but working with untidy data often means reinventing the wheel with one-time approaches that are hard to iterate or reuse.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/tidydata_3.jpg" width="700">- Friends with similar tools:
Alt-text: Two happy looking round fuzzy monsters, each holding a similarly shaped wrench with the word “wrangle” on it. Between their tools is held up a rectangular data table labeled “TIDY.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/tidydata_4.jpg" width="700">- Easier for automation & iteration!
Alt-text: Cute fuzzy monsters putting rectangular data tables onto a conveyor belt. Along the conveyor belt line are different automated “stations” that update the data, reading “WRANGLE”, “VISUALIZE”, and “MODEL”. A monster at the end of the conveyor belt is carrying away a table that reads “Complete analysis.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/tidydata_5.jpg" width="700">- And it makes all other tidy datasets seem more welcoming!
Alt-text: Digital illustration of a cute fuzzy monster holding a brief case that says "tidy data," standing beside a friendly looking data table character, being welcomed with cheers by many other data tables and another cute monster jumping with joy.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/tidydata_6.jpg" width="700">- So make friends with tidy data!
Alt-text: Digital illustration of two cute fuzzy monsters sitting on a park bench with a smiling data table between them, all eating ice cream together. In text above the illustration are the hand drawn words "make friends with tidy data."
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/tidydata_7.jpg" width="700">R Knowledge Rollercoaster:
Alt-text: An illustrated cartoon graph with “How much I think I know about R” on the y-axis, with axis labels at “I know nothing” and “I know lots”, versus “time” on the x-axis. The line varies widely between the two. Above the line are emoji-like faces, showing uncertainty and hope early on. At a second peak is the label “join R community on twitter”, with a “mind-blown” emoji face. The line quickly descends, but with a happy looking emoji character sliding down it.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/r_rollercoaster.png" width="700">Derivatives thread:
Alt-text: A cartoon showing a sad looking yellow point on a function, with a thought bubble that reads “Hello, I am point (x, f(x)). I want to find the slope exactly where I am, but the equation for slope requires 2 points.” The slope expression (change in y divided by the change in x) is written on the graph area.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/derivative_1.jpg" width="700">Alt-text: A cartoon with two points on a function. The blue point that just showed up looks excited and is at some distance from the yellow point, with a speech bubble reading “I am your neighbor just delta x down the road, (x + delta x, f(x + delta x))! Can I help?” The yellow point responds “Well, let’s start by finding the average slope between us.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/derivative_2.jpg" width="700">Alt-text: The same two yellow and blue points separated by delta x on a function, with a green line representing the average slope between them. The equation for the average slope is show. Both points look satisfied.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/derivative_3.jpg" width="700">Alt-text: Stylized text reading “So: the average slope between any two points on a function separated by delta x is quantity f(x+ delta x) - f(x) divided by delta x.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/derivative_4.jpg" width="700">Alt-text: The same two yellow and blue points separated by delta x, but now the yellow point is looking bummed out. The blue point says “What’s wrong?” and the yellow point responds “Well, I was hoping we could find my exact slope…”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/derivative_5.jpg" width="700">Alt-text: Close up montage of the blue point, thinking hard about different ways to calculate an exact slope. In gray text behind them are equations for slope, tangents, delta x, crumpled papers. Finally in the third illustration in the montage, the blue point is holding their arms up in victory with a lightbulb above them and the word “LIMITS.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/derivative_6.jpg" width="700">Alt-text: Two cartoon points on a function. The blue point is swooping down toward the yellow point, yelling “I’M COMING OVER!” The yellow point looks kind of stunned and says “what.” The blue point responds “If I get really close to you, then our average slope will be close to your exact slope!” On the x-axis is gray text reading “delta x is shrinking!” as the two points move closer together.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/derivative_7.jpg" width="700">Alt-text: Two cartoon points on a function, now very close together and with the blue point continuing to move toward the yellow point. In a speech bubble, the blue point says “And if the distance between us gets infinitely small (delta x approaches 0), our AVERAGE SLOPE becomes the INSTANTANEOUS SLOPE at a single point!” The yellow point now looks very happy.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/derivative_8.jpg" width="700">Alt-text: A single green point, looking victorious with arms raised, which is now representing the yellow and blue points have converged (delta x is infinitely small). Text reads “The expression for the instantaneous slope at any point on a function, aka the derivative, is found by (1) Finding an expression for the slope between two points on the function separated by delta x, and (2) evaluating that slope as the points get infinitely close together.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/derivative_9.jpg" width="700">usethis (seriously...):
Alt-text: Two round fuzzy monsters, one riding on the shoulders of the other, who is carrying it up a mountain. The monster riding on the shoulders is labeled “Me” and is saying “so productive!”, , and the one carrying it is labeled “usethis.” The mountain has faint text reading “so many things…” and a small flag at the top reading “yay.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/usethis.png" width="700">Faces of debugging:
Alt-text: A cartoon of a fuzzy round monster face showing 10 different emotions experienced during the process of debugging code. The progression goes from (1) “I got this” - looking determined and optimistic; (2) “Huh. Really thought that was it.” - looking a bit baffled; (3) “...” - looking up at the ceiling in thought; (4) “Fine. Restarting.” - looking a bit annoyed; (5) “OH WTF.” Looking very frazzled and frustrated; (6) “Zombie meltdown.” - looking like a full meltdown; (7) (blank) - sleeping; (8) “A NEW HOPE!” - a happy looking monster with a lightbulb above; (9) “insert awesome theme song” - looking determined and typing away; (10) “I love coding” - arms raised in victory with a big smile, with confetti falling.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/debugging.jpg" width="700">Monster supporters:
Alt-text: Cute fuzzy monsters holding up signs that read “we believe in you.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/monster_support.jpg" width="600">R-related artwork:
<a href="https://github.com/rasmusab/beepr">beepr</a> let's you pick and play a notification sound when your code/analysis is done running:
Alt-text: A cartoon alligator running excitedly toward a computer with musical notes coming out of it. Text reads “beepr::beep()s when your analysis is done running!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/beepr.jpg" width="500">beepr blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/beepr_blank.png" width="200">
<a href="https://broom.tidyverse.org/">broom</a> makes messy model / statistical outputs into tidy tibbles:
Alt-text: Cute round monsters with brooms cleaning up messy looking data tables. The tables go in looking a bit haggard and unruly, and come out as nice sparkly rectangles. Stylized text at the top reads “broom: turn messy model outputs into tidy tibbles!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/broom_package.png" width="600">broom blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/broom_blank.png" width="200">
<a href="https://dplyr.tidyverse.org/reference/mutate.html">dplyr::mutate</a> creates or transforms a variable (column) while keeping the existing ones:
Alt-text: Cartoon of cute fuzzy monsters dressed up as different X-men characters, working together to add a new column to an existing data frame. Stylized title text reads “dplyr::mutate - add columns, keep existing.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/dplyr_mutate.png" width="400">mutate blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/dplyr_mutate_blank.png" width="200">
<a href="https://dplyr.tidyverse.org/">dplyr</a>: get your data wrangling on.
Alt-text: Cartoon of a fuzzy monster with a cowboy hat and lasso, riding another fuzzy monster labeled “dplyr”, lassoing a group of angry / unruly looking creatures labeled “data.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/dplyr_wrangling.png" width="400"><a href="https://www.tidyverse.org/blog/2020/04/dplyr-1-0-0-colwise/">dplyr::across()
</a> makes it easy to apply a function (or functions) across selected columns!
Alt-text: A cute round fuzzy monster with fairy wings and a wand, with a party hat on reading “mean”, bouncing across the top of a data table applying the function to each column. Stylized text reads: “dplyr::across() - use within mutate() or summarize() to apply function(s) to a selection of columns!” An example shows the use within summarize: summarize(across(where(is.numeric), mean)).
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/dplyr_across.png" width="600">across blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/across_blank.png" width="200">
<a href="https://dplyr.tidyverse.org/reference/case_when.html">dplyr::case_when()
</a> for friendly if_else statements:
Alt-text: Cartoon showing a table with creature type (kraken, dragon, or cyclops) and age (baby, teen, or adult). The three creatures listed are adding a new column named “danger”, which contains the word “extreme!” if the type is “kraken”, or “high” for any other type. Stylized text reads “dplyr::case_when() - IF ELSE...but you love it? An example of code is shown: mutate(danger = case_when(type == “kraken” ~ “extreme!”, TRUE ~ “high”).
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/dplyr_case_when.png" width="600"><a href="https://dplyr.tidyverse.org/reference/filter.html">dplyr::filter()
</a> to subset rows based on your conditions:
Alt-text: Cartoon showing three fuzzy monsters either selecting or crossing out rows of a data table. If the type of animal in the table is “otter” and the site is “bay”, a monster is drawing a purple rectangle around the row. If those conditions are not met, another monster is putting a line through the column indicating it will be excluded. Stylized text reads “dplyr::filter() - keep rows that satisfy your conditions.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/dplyr_filter.jpg" width="600">filter blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/filter_blank.png" width="200">
<a href="https://www.tidyverse.org/blog/2020/03/dplyr-1-0-0-select-rename-relocate/">dplyr::relocate
</a>: a friendly function for moving columns around (in dplyr
1.0.0)!
Alt-text: Cartoon of fuzzy monsters moving columns around in fork lifts, while one supervises. Stylized text reads “dplyr::relocate() - move columns around! Default: move to FRONT , or move to .before or .after a specified column.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/dplyr_relocate.png" width="600">relocate blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/relocate_blank.png" width="200">
<a href="https://github.com/thomasp85/gganimate">gganimate</a>: get a little action in(to your graphs)...
Alt-text: Cartoon of a bunch of monsters watching data points of varing color and shape fly across a screen like fireworks. Several monsters are lighting the data off like fireworks. Stylized text reads “gganimate: action figures!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/gganimate_fireworks.PNG" width="400">gganimate blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/gganimate_blank.png" width="200">
<a href="https://ggplot2.tidyverse.org/">ggplot2</a> for visual data exploration:
Alt-text: A group of fuzzy round monsters with binoculars, backpacks and guide books looking up a graphs flying around with wings (like birders, but with exploratory data visualizations). Stylized text reads “ggplot2: visual data exploration.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/ggplot2_exploratory.png" width="400">ggplot2 exploratory blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/ggplot2_exploratory_blank.png" width="200">
...and use <a href="https://ggplot2.tidyverse.org/">ggplot2</a> for creating beautiful data masterpieces!
Alt-text: A fuzzy monster in a beret and scarf, critiquing their own column graph on a canvas in front of them while other assistant monsters (also in berets) carry over boxes full of elements that can be used to customize a graph (like themes and geometric shapes). In the background is a wall with framed data visualizations. Stylized text reads “ggplot2: build a data masterpiece.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/ggplot2_masterpiece.png" width="400">ggplot2 masterpiece blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/ggplot2_blank.png" width="200">
<a href="https://www.rdocumentation.org/packages/here/versions/0.1">here</a> for more peaceful (file) paths:
Alt-text: A cartoon showing two paths side-by-side. On the left is a scary spooky forest, with spiderwebs and gnarled trees, with file paths written on the branches like “~/mmm/nope.csv” and “setwd(“/haha/good/luck/”), with a scared looking cute fuzzy monster running out of it. On the right is a bright, colorful path with flowers, rainbow and sunshine, with signs saying “here!” and “it’s all right here!” A monster facing away from us in a backpack and walking stick is looking toward the right path. Stylized text reads “here: find your path.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/here.png" width="400">here blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/here_blank.png" width="200">
The <a href="https://github.com/sfirke/janitor">janitor</a> package contains multiple user-friendly functions for cleaning messy data, including clean_names() to update all of your column names to a nice case of your choosing (snake_case! lowerCamel! UpperCamel! SCREAMING_SNAKE! ...and more) all at once:
Alt-text: A cartoon beaver putting shapes with long, messy column names (pulled from a bin labeled “MESS” and “not so awesome column names”) into a contraption that converts them to lower snake case. The output has stylized text reading “Way more deal-withable column names.” Title text reads “janitor::clean_names(): convert all column names to *_case!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/janitor_clean_names.png" width="500">Use <a href="https://lubridate.tidyverse.org/">lubridate</a> to work more easily & intuitively with dates & times:
Alt-text: A cartoon Delorean, with several fuzzy monsters dressed in lab coats pouring date-times into the flux capacitor, with one holding a lubridate cheatsheet. One fuzzy monster is flying on a hoverboard, dressed like Marty McFly from Back to the Future. Title text reads “lubridate: time control!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/lubridate.png" width="400">lubridate time control blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/lubridate_timecontrol_blank.png" width="200">
Like <a href="https://lubridate.tidyverse.org/">lubridate_ymd()</a> to easily parse year/month/day data!
Alt-text: Fuzzy cartoon monsters in construction hats sorting a pile of “Y” “M” and “D”s into separate piles labeled “Years”, “Months” and “Days”. Title text reads “Lubridate: wrangle times and dates!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/lubridate_ymd.png" width="400">lubridate ymd blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/lubridate_ymd_blank.png" width="200">
Use <a href="https://readr.tidyverse.org/reference/parse_number.html">readr::parse_number()</a> to just keep the numeric parts, & remove characters:
Alt-text: Two cute monsters working together to update a movie theatre marquee, removing any non-numeric information from a sign labeled “My Data” with a combination of numeric values and character strings. Stylized text reads “readr::parse_number() - just give me the numbers.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/parse_number.png" width="400">parse_number blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/parse_number_blank.png" width="200">
Part of tidymodels, the <a href="https://github.com/tidymodels/parsnip">parsnip</a> package creates standardized syntax across model engines:
Alt-text: Fuzzy monster cartoons lined up in various race cars at a checkered starting line. Their race cars are labeled with common modeling engines (stan, keras, glmnet, lm). There is one race-starter monster in aviator sunglasses, holding a flag with the parsnip package hex sticker on it (a cartoon parsnip). Text next to the starting line reads “3...2...1...run model!” Title text reads “parsnip::set_(your)_engine!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/parsnip.png" width="500">parsnip blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/parsnip_blank.png" width="200">
Easily arrange and combine ggplots with <a href="https://patchwork.data-imaginist.com/">patchwork</a>!
Alt-text: Fuzzy cartoon monsters in white gloves and uniforms hanging multiple plots together on a wall, with an artist monster wearing a beret and smock directing them to the correct orientation. There is a blueprint plan on the wall showing how the plots should be arranged. Stylized title font reads “patchwork - combine & arrange your ggplots!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/patchwork_1.jpg" width="500">patchwork blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/patchwork_blank.png" width="200">
You can do it!
Alt-text: A digital cartoon with two illustrations: the top shows the R-logo with a scary face, and a small scared little fuzzy monster holding up a white flag in surrender while under a dark stormcloud. The text above says “at first I was like…” The lower cartoon is a friendly, smiling R-logo jumping up to give a happy fuzzy monster a high-five under a smiling sun and next to colorful flowers. The text above the bottom illustration reads “but now it’s like…”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/r_first_then.png" width="400">R first-then blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/r_first_then_blank.png" width="200">
Use @tylermorganwall's <a href="https://github.com/tylermorganwall/rayshader">rayshader</a> package to create amazing 3D maps and graphs!
Alt-text: A group of fuzzy round monsters adjusting different aspects of a 3D rendering of a map, with different functions from the rayshader package on their uniforms or materials. The ray_shade() lighting operator is controlling a spotlight; the render_label() artist is spraypainting a label onto the map; the sphere_shade() painter is adding shadows to the landscape; the render_depth() monster is blurring the background, and the add and detect_water() monsters are filling a watershed on the map with water from a hose. Stylized title text reads: “Rayshader by @tylermorganwall: create mesmerizing 3D maps and graphs!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/rayshader.png" width="500">Use <a href="https://tidymodels.github.io/recipes/">recipes</a> to streamline data preprocessing for stats & machine learning models:
Alt-text: A cartoon showing the progression of a fuzzy green round monster baking something, representing steps for data pre-processing available in the recipes package. From left to right: a pantry labeled “Variables pantry” where the monster is picking “response” and “predictor” variables, with text below reading “1. Specify variables”, then the monster writing pre-processing steps on a chalkboard (text reads “define pre-processing steps”), then the monster carrying boxes full of data (text reads “Provide datasets for recipe steps”), and finally the monster mixing things with a stand mixer, pouring contents into different tupperwares labeled “imputed”, “scaled”, “centered”, with text below reading “Apply pre-processing!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/recipes.png" width="500">Create reproducible examples to get (and give) help more easily with <a href="https://github.com/tidyverse/reprex">reprex</a>!
Alt-text: A side-by-side comparison of a monster providing problematic code to tech support when it is on a bunch of crumpled, disorganized papers, with both monsters looking sad and very stressed (left), compared to victorious looking monsters celebrating when code is provided in a nice box with a bow labeled “reprex”. Title text reads “reprex: make reproducible examples. Help them help everyone!”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/reprex.png" width="500">reprex blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/reprex_blank.png" width="200">
Get your code, text & outputs in the same (reproducible) place with <a href="https://rmarkdown.rstudio.com/">Rmarkdown</a>:
Alt-text: A glam rock band comprised of 3 fuzzy round monsters labeled as “Text”, “Outputs” and “Code” performing together. Stylized title text reads: “R Markdown - we’re getting the band back together.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/rmarkdown_rockstar.png" width="500">rmarkdown rockstars blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/rmarkdown_band_blank.png" width="200">
Be an <a href="https://rmarkdown.rstudio.com/">Rmarkdown</a> knitting wizard.
Alt-text: Two fuzzy round monsters dressed as wizards, working together to brew different things together from a pantry (code, text, figures, etc.) in a cauldron labeled “R Markdown”. The monster wizard at the cauldron is reading a recipe that includes steps “1. Add text. 2. Add code. 3. Knit. 4. (magic) 5. Celebrate perceived wizardry.” The R Markdown potion then travels through a tube, and is converted to markdown by a monster on a broom with a magic wand, and eventually converted to an output by pandoc. Stylized text (in a font similar to Harry Potter) reads “R Markdown. Text. Code. Output. Get it together, people.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/rmarkdown_wizards.png" width="500">rmarkdown wizards blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/rmarkdown_wizards_blank.png" width="200">
Do your data sci like it's going to need an alibi with <a href="https://rmarkdown.rstudio.com/">Rmarkdown</a>:
Alt-text: A judge’s desk labeled “Reproducibility” with a witness stand right next to it. On the witness stand is a smiling and confident R Markdown document pointing at some lines of code on itself. A fuzzy monster lawyer in a polka-dot tie stands proudly saying “Nothing further!” The judge (also a cute fuzzy monster) is smiling with their hands raised in celebration of reproducible work.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/reproducibility_court.png" width="600">reproducibility court blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/reproducibility_court_blank.png" width="200">
Use the <a href="https://github.com/r-spatial/sf">sf</a> package for simpler spatial data analysis with geometries that stick to attributes:
Alt-text: Three cute fuzzy monsters adding spatial geometries to an existing table of attributes using glue and tape, while one cuts out the spatial polygons. Title text reads “sf: spatial data...simplified.” and a caption at the bottom reads “sticky geometries: for people who love their maps and sanity.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/sf.png" width="500">sf blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/sf_blank.png" width="200">
Soon to be pivot_wider() & pivot_longer()! <a href="https://tidyr.tidyverse.org/">tidyr::spread() & gather()</a>:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/tidyr_spread_gather.png" width="400"><a href="https://stringr.tidyverse.org/reference/str_trim.html">stringr::str_squish()
</a> removes whitespace before and after strings, and reduced repeated interior whitespace to a single space (see also: str_trim()
):
Alt-text: An illustration of four fuzzy monsters squishing together a string containing the words “a cat” with excess whitespace at the ends and between the words, showing those excess whitespaces being eject as they squish the ends together. Text read “stringr::str_squish(): remove leading, trailing & repeated interior whitespace from strings.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/str_squish.png" width="600">str_squish blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/str_squish_blank.png" width="200">
Blast off into the...
Alt-text: A galaxy of tidyverse-related hex stickers.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/tidyverse_celestial.png" width="400">For #rstats and friends!
Alt-text: Two fuzzy monsters standing side-by-side outside of a door frame containing different R communities and accounts on Twitter, with a “mind blown” rainbow coming out of the one closest to the door. A welcome mat says “Welcome.”
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/welcome_to_rstats_twitter.png" width="400">rstats blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/rtwitter_blank.png" width="200">
Thanks, #rstats community!
Alt-text: A person in a cape that reads “code hero” who looks like they are flying through the air while typing on a computer while saying “I’m doing a think all on my own!” The coder’s arms and legs have ropes attached to two hot air balloons lifting them up, with labels on the balloons including “teachers”, “bloggers”, “friends”, “developers”. Below the code hero, several people carry a trampoline with labels “support” and “community” that will catch them if they fall
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/code_hero.jpg" width="700">codehero blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/code_hero_blank.png" width="200">
If you bring group_by() to the party, don't forget dplyr::ungroup()
Alt-text: Two fuzzy monsters in the foreground in birthday party hats celebrate together because one has opened a gift with group_by() inside. Text above those two reads “Other really important parts sold separately!” In the background, a very hopeful little monster stands along holding a package labeled “ungroup”, waiting to be invited.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/group_by_ungroup.png" width="400">ungroup blank: <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-blanks/ungroup_blank.png" width="200">
purrr bakers from Hadley Wickham's 2019 talk "The Joy of Functional Programming (for Data Science)"
The following illustrations are in Hadley's ACM talk, which you can watch HERE. Please cite the following artwork with "Illustrations from Hadley Wickham's talk "The Joy of Functional Programming (for Data Science)."
Bakers
Alt-text: Three green fuzzy monsters sitting in front of a TV with a pile of frosted cupcakes on the screen. A larger magenta fuzzy monster looks at them with an “idea” lightbulb over their head.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/bakers_1.png" width="600">Alt-text: A purple fuzzy monster in a chef hat holds up a picture of a cupcake for three fuzzy green monsters, who are also all in chef hats and holding baking equipment and ingredients.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/bakers_2.png" width="600">Alt-text: Three green fuzzy monsters in chef hats stand on top of one another, with the one on top pouring flour into a mixing bowl.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/bakers_3.png" width="600">Alt-text: Three green fuzzy monsters mixing cupcake batter. The one holding the electric mixer is being swung around by it out of control while the others look cheering at the mayhem.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/bakers_4.png" width="600">Alt-text: Three green fuzzy monsters in chef hats pouring cupcake batter into a cupcake tin. One sits to the site eating cupcake batter.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/bakers_5.png" width="600">Alt-text: Three green fuzzy monsters in chef hats carrying a tray of baked cupcakes.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/bakers_6.png" width="600">Alt-text: Three green fuzzy monsters in chef hats frosting cupcakes with the same vanilla frosting. A purple fuzzy monster to the side holds a recipe book containing code that would automate the cupcake frosting process.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/map_frosting.png" width="600">Alt-text: Three green fuzzy monsters in chef hats frosting cupcakes with three different frostings. A purple fuzzy monster to the side holds a recipe book containing code that would automate the cupcake frosting process.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/map2_cupcakes.png" width="600">Alt-text: Three green fuzzy monsters in chef hats adding frosting and sprinkles to vanilla cupcakes.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/bakers_7.png" width="600">Alt-text: Three green fuzzy monsters in chef hats showing off their final table of frosted, sprinkled cupcakes. One of the three is sitting on the ground looking sick from eating too many cupcakes. A large purple monster is looking on with arms raised in celebration.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/bakers_8.png" width="600">Others from this set
For looped:
Alt-text: Three green fuzzy monsters being whipped around on a spinning park platform, with one that’s already been flung on the ground looking dizzy.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/forloops.png" width="600">Wrangler:
Alt-text: A green fuzzy monster in a cowboy hat and mustache, lassoing a group of unruly data tables while riding a blue fuzzy monster.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/data_cowboy.png" width="600">purrr feels like:
Alt-text: Three green fuzzy monsters nestled together with a friendly large orange cat.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/purrr_cat.png" width="600">Presenting results:
Alt-text: A green fuzzy monster presenting a scatterplot graph.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/presenting_monster.png" width="600">R gifs (made for ESM 206 Slack channel, Fall 2020)
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/stormyr.gif" width="400"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/heartyr.gif" width="400"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/breakr.gif" width="400"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/exploder.gif" width="400"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/rainbowr.gif" width="400"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/code_hero.gif" width="400">Make your own sample cartoons!
I'm building this library of samples, faces & arms so that statistics teachers can create their own fun, charismatic samples to include in stats lectures, slides & materials. The files below contain different graphs (dotplots, histograms, more to come) with matching arms doing different things, along with a file of faces you can add on top to give them some personality. I recommend playing with transparency, brightness, cropping & size in whatever program you use to piece these together! Working on making these PNGs & SVGs.
Here are some examples of DIY creations:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/make-your-own-stats-cartoons/ex_1.png" width="300"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/make-your-own-stats-cartoons/ex_3.png" width="300"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/make-your-own-stats-cartoons/ex_4.png" width="300">The pieces so that you can make your own:
Faces
Choose the expression to add to your sample:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/make-your-own-stats-cartoons/SVG/faces.svg" width="500">Histogram sticker sheets
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/make-your-own-stats-cartoons/SVG/rose_histogram_sheet.svg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/make-your-own-stats-cartoons/SVG/blue_histogram_sheet.svg" width="500">Dot plot sticker sheets
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/make-your-own-stats-cartoons/SVG/green_dotplot_sheet.svg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/make-your-own-stats-cartoons/SVG/teal_dotplot_sheet.svg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/make-your-own-stats-cartoons/SVG/purple_dotplot_sheet.svg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/make-your-own-stats-cartoons/SVG/orange_dotplot_sheet.svg" width="500">Extras & speech bubbles
More coming, feel free to send suggestions.
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/make-your-own-stats-cartoons/SVG/word_thought_bubbles.svg" width="400">Other stats artwork:
For loop monster parade
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/monster_for_loop.png" width="600">Whale sharks for PCA teaching warm-up
I start with "pretend you are this whale shark..."
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/whaleshark.png" width="600"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/krill.png" width="600">Pie charts
For the love of pie charts:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/pie_charts.jpg" width="400">k-means clustering thread:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/kmeans_1.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/kmeans_2.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/kmeans_3.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/kmeans_4.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/kmeans_5.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/kmeans_6.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/kmeans_7.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/kmeans_8.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/kmeans_9.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/kmeans_10.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/kmeans_11.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/kmeans_12.jpg" width="500">Hierarchical clustering (single linkage) thread:
Creatures and their distance matrix:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/cluster_single_linkage_1.jpg" width="500">Find the clusters with the minimum distance between elements in them & merge:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/cluster_single_linkage_2.jpg" width="500">Repeat!
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/cluster_single_linkage_3.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/cluster_single_linkage_4.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/cluster_single_linkage_5.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/cluster_single_linkage_6.jpg" width="500"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/cluster_single_linkage_7.jpg" width="500">Ta-da!
Multiple linear regression dragons thread:
Meet your MLR teaching assistants:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/dragons.png" width="500">Interpret coefficients for categorical predictor variables:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/dragon_regression.png" width="500">And for continuous predictor variables:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/dragons_continuous.png" width="500">Or make predictions using the regression model:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/dragon_predict_mlr.png" width="500">Understand residuals:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/dragon_residual.png" width="500">And check for residuals normality:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/dragon_residual_distribution.png" width="500">in_case_you_forget:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/coding_cases.png" width="500">Release the disco data:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/summary_statistics.png" width="500">Type I errors:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/type_1_errors.png" width="500">Type II errors:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/type_2_errors.png" width="500">Normality?
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/not_normal.png" width="500">Continuous & discrete data:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/continuous_discrete.png" width="500">Nominal, ordinal & binary data:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/nominal_ordinal_binary.png" width="500">Openscapes artwork (@jules32 collaborations)
The expanded version of the classic Grolemund & Wickham R4DS workflow, including environmental data & sci comm bookends! Envisioned by Dr. Julia Lowndes for her useR!2019 keynote. Please cite this illustration as: "Updated from Grolemund & Wickham's classis R4DS schematic, envisioned by Dr. Julia Lowndes for her 2019 useR! keynote talk and illustrated by Allison Horst."
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/openscapes/environmental-data-science-r4ds-general.png" width="800">Really random stuff
Dog & whale training art:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/dog_treats_pipe.jpg" width="600"> <img src="https://github.com/allisonhorst/stats-illustrations/blob/main/rstats-artwork/splash-training.jpg" width="600">Make a data shark:
<img src="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/data_shark.png" width="600">Data to make the shark is <a href="https://github.com/allisonhorst/stats-illustrations/blob/main/other-stats-artwork/shark_raw.csv">HERE</a>. Created with <a href="https://drawdata.xyz/">drawdata.xyz</a>.
Translated R-artwork:
-
Español: <a href="https://github.com/allisonhorst/stats-illustrations/tree/main/rstats-artwork-ES">rstats-artwork-ES</a>
-
Brazilian Portuguese: <a href="https://github.com/allisonhorst/stats-illustrations/tree/main/rstats-artwork-PT">rstats-artwork-PT</a>
-
Please submit translations as an issue!
Thank you
Thank you to all the R developers, maintainers, contributors, teachers and communicators who actually MAKE all of these amazing packages and documentation that have inspired this #rstats artwork. When I create an illustration with your package it's with immense gratitude for how your hard work has allowed me to do mine (using and teaching #rstats) more efficiently, more clearly, more reproducibly....just plain better. THANK YOU!