Open-source project
gkaramanis/tidytuesday avatar
gkaramanis/tidytuesday

tidytuesday: seven years of weekly data visualisations kept as code and plots

Code and plots for submissions to the #tidytuesday challenge

793 stars111 forksJavaScriptMIT

At a glance

What is it?
This repository is the archive of a contributor's submissions to the tidytuesday challenge, one folder per week with the script that produced the chart and the rendered plot beside it, plus a yearly roundup image for each of the seven years. It is a portfolio of small R analyses rather than a reusable library, and the weekly folders are the actual deliverable.
Who is it for?
This repository fits a data analyst who wants to see how a weekly exploratory chart is actually built, and wants a reference for their own tidytuesday work, since each week keeps the script next to the output. It does not fit a developer looking for a tool, a dataset, or a reusable plotting helper, because nothing here is packaged for use elsewhere.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

One folder per week, script beside plot

The repository holds code and plots for submissions to the tidytuesday challenge, and the organising principle is the week. There is a directory for each year from 2019 through 2026, and inside each, a folder named for the week, and inside that, the analysis and the image it produced.

The README makes the convention explicit with its highlights gallery, where each thumbnail links straight to the code that produced it. The links point at paths such as 2020/2020-week31, 2022/2022-week_12 and 2023/2023-week_45, and the images referenced are the ones sitting in the plots directory of each week, with names that describe the subject rather than the week, such as penguins.png, house.png, food-consumption.png, tornado plots and a baby names chart.

The naming is not entirely consistent, and that is worth noticing if you are writing tooling against the tree. Some week folders use a hyphen before the number and others use a low line, so 2020-week08 and 2020-week_12 both appear, and the year directories mix 2021, 2022, 2023 which use the low line in some week names with 2019, 2020 and 2024 onwards which do not. A glob that assumes one convention will miss weeks.

The subject matter follows the challenge, which covers a different dataset each week, and the visible highlights run from friendliness of dogs and ramen ratings through to emperors, penguins, the Tour de France, Eurovision and tornados.

The yearly roundup images

Alongside the weekly folders there is a yearly-roundup directory with one subdirectory per year, and the README embeds a single image for each of the seven completed years.

The first year is labelled March 2019 to February 2020 and its image lives at 52-weeks/52.png, which is a neat way to signal that the first year ran to 52 submissions. The subsequent years use names rather than numbers, with second-year, third-year, fourth-year, fifth-year, sixth-year and seventh-year, and the seventh is dated March 2025 to March 2026.

So the archive covers seven full years of weekly work with a summary image for each. That is a format that rewards browsing, since a contact sheet of a year is a much faster way to find the kind of chart you are looking for than a directory listing, and the README gallery then narrows it further to the specific week.

The year boundaries also make visible how the challenge is paced. The first year runs to February 2020 and the second to March 2021, and the seventh ends in March 2026, so the run has been continuous with a yearly reset rather than a change of format.

The R project at the root

The top-level entries are where the tooling lives, and they are few enough to list. There is a tidytuesday.Rproj file, which is the RStudio project marker, and three R scripts at the root: newweek.R, script-of-the-week.R and gifmaker.R.

The names describe the workflow. newweek.R is presumably the scaffolding for a new week's folder, script-of-the-week.R for the reusable analysis, and gifmaker.R for producing animated output, which is a natural fit for a challenge where a chart often shows change over time and a still image would lose the point.

Two support directories sit alongside them. count_fonts/ and count_geoms/ are clearly utilities for counting fonts and geometries, which in a charting context is how you check whether a plot is using more colours or shape types than a reader can distinguish. That is the kind of check that separates a chart you can read from one that looks busy.

There is also a _extensions/ directory and a .nojekyll file, which together mean the repository is served as a static site by GitHub Pages with Jekyll extensions enabled and Jekyll itself bypassed. So the README gallery and the yearly roundup images are not just files in a repository, they are the rendered front page of a published site.

A portfolio, not a library

It is worth being clear about what this repository is and is not, because the name suggests a tool and the contents are an archive.

There is no package to install, no exported functions, no API and no documentation site for users. There is a licence file and a README that functions as an index. Everything else is a record of work done week by week, kept in the form it was produced in.

That makes the value different in kind from a library. A library is useful because it saves you writing something. An archive like this is useful because it shows you how somebody else wrote something, week after week, on data you have never seen. For a challenge participant, the specific value is that the difficulty of each weekly dataset is invisible in the finished plot and obvious in the script, and reading a hundred of those scripts is a fast way to learn what a good exploratory analysis looks like on unfamiliar data.

The language metadata for the repository says JavaScript, which does not match the visible tooling, where the root scripts and the project file are R. The .nojekyll file and the _extensions/ directory explain the JavaScript: some of the plotting or site tooling is in that language, but the analysis itself is R.

How the weekly archive is meant to be read

There are two ways in, and they suit different purposes.

The first is the gallery in the README, which is a curated set of about a dozen plots chosen to show a range of chart types and subjects, from a table of emperors to a bar chart of baby names, a map of housing, a line chart of the Tour de France and a map of tornados. Clicking a thumbnail goes to the code, and the README says as much with the instruction that the highlights are clickable to go to the code. For a quick survey of what is in there, that is the efficient route.

The second is the directory tree, which is organised year by year and week by week, and each week holds a plots directory. That route is the one you want when you are looking for a specific kind of analysis, or when you want to see how the same dataset was handled in a different week, or when you want to check what the work looked like at a point in time.

The two together make a point about the format of the archive. The plots are the output and the scripts are the record, and the repository is organised so that you can move in either direction, from a picture of something interesting to the code that made it, or from a year you care about to the week that caught your eye.

What this repository is not for

The first thing it is not for is reuse as a component. If you want a function that draws a particular chart, this is not where it lives, and the scripts are written for a specific week rather than packaged with a documented interface.

The second is that it is not a data source. The datasets belong to the challenge, and each week's analysis reads whatever that week's data was, so the repository is a record of analyses rather than a collection of cleaned inputs.

The third is that the year-by-year roundup format makes this an archive that will keep growing, and the year directories extend past the last completed roundup, which ends at March 2026. The 2024, 2025 and 2026 directories are there, so the most recent entries are available in the same form, but the summary images stop at the seventh year.

For anyone planning to use this as a reference, the practical advice is to pick one kind of analysis and read the weeks that did it. The archive is strongest as a catalogue of approaches, and a catalogue is most useful when you already know what you are looking for.

Editorial conclusion

This repository fits a data analyst who wants to see how a weekly exploratory chart is actually built, and wants a reference for their own tidytuesday work, since each week keeps the script next to the output. It does not fit a developer looking for a tool, a dataset, or a reusable plotting helper, because nothing here is packaged for use elsewhere. Before drawing on it, check the licence and keep the R workflow in mind, since the tooling is an R project with helper scripts rather than a JavaScript library despite what the language metadata says, and read the per week folders rather than the roundup images if you want the method rather than the result.

Frequently asked questions

What does the tidytuesday submissions repository contain?

It holds the code and plots for one contributor's submissions to the tidytuesday challenge, organised with a directory per year from 2019 to 2026 and a folder per week inside each, where the analysis script sits beside the rendered plot.

How is the yearly roundup organised?

The yearly-roundup directory has one subdirectory per year and the README embeds a single image for each of the seven completed years, from 52-weeks/52.png for the first year of March 2019 to February 2020 through the seventh year ending March 2026, with the middle years named second-year through sixth-year.

What tools does the repository use to produce the charts?

The root holds an RStudio project file, a tidytuesday.Rproj, together with newweek.R, script-of-the-week.R and gifmaker.R, plus count_fonts/ and count_geoms/ helper directories. There is also an _extensions/ directory and a .nojekyll file, which together mean the repository is published as a static site with Jekyll bypassed.

How do I find a specific week's code?

The README has a highlights gallery where clicking a thumbnail goes straight to the code for that week, pointing at paths such as 2020/2020-week31 and 2023/2023-week_45. The directory tree gives the same by year and week, though the folder naming is inconsistent, with some weeks using a hyphen and others an underscore before the number.

Is this repository a reusable library or a dataset?

It is neither. It is an archive of completed weekly analyses kept in the form they were produced, with no package to install, no exported functions and no cleaned inputs, so its value is as a catalogue of approaches rather than as a dependency.

Official sources

  1. gkaramanis/tidytuesday on GitHub
  2. Issues
  3. License: MIT
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/gkaramanis-tidytuesday.svg)](https://hysenlabs.com/projects/gkaramanis-tidytuesday)

Was this useful?