<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Data Viz on rostrum.blog</title>
    <link>https://www.rostrum.blog/categories/data-viz/</link>
    <description>Recent content in Data Viz on rostrum.blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <lastBuildDate>Wed, 10 May 2023 00:00:00 +0000</lastBuildDate>
    
	<atom:link href="https://www.rostrum.blog/categories/data-viz/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Recreating a dataviz with {ggplot2}</title>
      <link>https://www.rostrum.blog/2023/05/10/spear-ggplot2/</link>
      <pubDate>Wed, 10 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2023/05/10/spear-ggplot2/</guid>
      <description>They’re the same picture. Nearly.  tl;dr Two years ago I won a data-viz recreation competition run by the Royal Statistical Society (RSS) using base R’s plotting. I wrote a short {ggplot2} how-to for RSS’s ‘Significance’ magazine that was never published1, so here it is now.
 Recreate This short code walkthrough will get you started on recreating Mary Eleanor Spear’s cotton plot (1952), as used in the Royal Statistical Society’s #CottonViz challenge.</description>
    </item>
    
    <item>
      <title>Adding a Shiny app to {dehex}</title>
      <link>https://www.rostrum.blog/2021/08/27/dehex-app/</link>
      <pubDate>Fri, 27 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/08/27/dehex-app/</guid>
      <description>Use the {dehex} app to generate a random hex code and learn how to interpret it by eye.  tl;dr The {dehex} package now contains a Shiny app that you can use to walk through the process of reading a colour hex code, as per David DeSandro’s method.
 {dehex}cellent In the last post I introduced the R package {dehex}. Its purpose is to help me (you?) look at a colour hex code and be able to ‘read’ roughly what colour it is without resorting to a lookup.</description>
    </item>
    
    <item>
      <title>Read a hex colour code with {dehex}</title>
      <link>https://www.rostrum.blog/2021/08/10/dehex/</link>
      <pubDate>Tue, 10 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/08/10/dehex/</guid>
      <description>tl;dr I wrote an R package, {dehex}, that helps you learn to ‘read’ a hex colour code by eye according to David DeSandro’s method. Check out his mindblowing talk.
 Hue are you? Hex codes are used in computing to encode a colour as a succinct six-digit alphanumeric string, like #F4D82A.
These codes are written in hexadecimal (hence ‘hex’): they can take the characters 0 to 9 and A to F, which encodes 16 possible values.</description>
    </item>
    
    <item>
      <title>OG emoji SVGs</title>
      <link>https://www.rostrum.blog/2021/07/31/og-emoji-svg/</link>
      <pubDate>Sat, 31 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/07/31/og-emoji-svg/</guid>
      <description>tl;dr I wrote code to produce SVG versions of the ‘first-ever’ emoji set. Using R, I scraped Emojipedia with the {polite} package and then handled images with {png}, {magick} and {svglite}.
 Important archival work I posted recently on creating ‘pixel art’ in R and have since stumbled upon an old post by mikefc on the coolbutuseless blog with a method that makes it easier to convert from an image to its ‘pixels’.</description>
    </item>
    
    <item>
      <title>Make an art gallery with {bs4cards}</title>
      <link>https://www.rostrum.blog/2021/07/25/faxcrayon/</link>
      <pubDate>Sun, 25 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/07/25/faxcrayon/</guid>
      <description>Design is, like, a process, so the page may change, y’know?  tl;dr I used the {bs4cards} package by Danielle Navarro to create an effortless online ‘gallery’ of ‘art’ on a single R Markdown page: faxcrayon.art.
 Art is a lie Turns out you can just put up some pictures on the internet and call it a gallery. No one is stopping you.
Here is a foolproof approach: R Markdown with {bs4cards} to write the content, GitHub Pages to serve it, and a totally rad URL to convince people you’re legit.</description>
    </item>
    
    <item>
      <title>What colour is London?</title>
      <link>https://www.rostrum.blog/2021/07/23/london-colour/</link>
      <pubDate>Fri, 23 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/07/23/london-colour/</guid>
      <description>tl;dr I used the {rtweet} and {magick} R packages to fetch tweets of random satellite images of London and then reduced each one to a single representative colour.
 Green/grey belt I created the @londonmapbot Twitter bot to tweet out satellite images of random points in Greater London. You can read earlier posts about how it was made and how I mapped the points interactively.
I figured we could sample these to get to ‘the colours of London’, which can be mapped or tiled.</description>
    </item>
    
    <item>
      <title>#RecreationThursday: a LeWitt Shiny app</title>
      <link>https://www.rostrum.blog/2021/07/05/recreate-lewitt/</link>
      <pubDate>Mon, 05 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/07/05/recreate-lewitt/</guid>
      <description>LeWitt ReMix The third #RecreationThursday challenge involved Sol LeWitt’s Colour Bands (2000), which you can see on this prints catalogue. In short, each piece is square and contains patterns of colourful concentric lines that are arranged into panels of varying shapes with black borders.
Rather than recreate his artworks exactly, I decided to riff on the approach with a (very basic) Shiny app, which adds different types of lines and some randomisation.</description>
    </item>
    
    <item>
      <title>#RecreationThursday: Hlito with base R</title>
      <link>https://www.rostrum.blog/2021/06/21/recreate-hlito/</link>
      <pubDate>Mon, 21 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/06/21/recreate-hlito/</guid>
      <description>Rando-Hlito The first #RecreationThursday challenge involved Alfredo Hlito’s Curves and Straight Series (1948), held by New York’s MoMA.
My recreation uses only base R functions:
 My remix is a 10 by 10 grid where the elemental geometry is randomised:
 I also made a gif remix that’s composed of 10 ‘rando-Hlitos’:
  Approach You can find all the commented code and the outputs in my matt-dray/viz-recreation GitHub repo.</description>
    </item>
    
    <item>
      <title>Recreating Spear&#39;s #CottonViz in base R</title>
      <link>https://www.rostrum.blog/2021/06/08/recreate-spear/</link>
      <pubDate>Tue, 08 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/06/08/recreate-spear/</guid>
      <description>#CottonViz The Young Statistician’s and History of Stats sections of the Royal Statistical Society (RSS) have challenged people to recreate1 or remix Mary Eleanor Spear’s visualisation of cotton supplies in the United States in the 1940s:2
 I thought it would be interesting to recreate it using only R’s built-in base graphics. This might be a nice demo of zero-dependency plotting for R users who are more familiar with {ggplot2}.</description>
    </item>
    
    <item>
      <title>#GithubSkyline but hear me out</title>
      <link>https://www.rostrum.blog/2021/02/21/skyphone/</link>
      <pubDate>Sun, 21 Feb 2021 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2021/02/21/skyphone/</guid>
      <description>My skyline clearly has a Central Business District with development in the suburbs.   Note
The GitHub Skyline API–on which the {skyphone} package depends–stopped responding (i.e. it 404s) soon after this post was published. I may fix {skyphone} in future to work via {gh} instead; feel free to contribute.
 tl;dr I made the R package {skyphone} to get GitHub contributions data from GitHub Skyline and sonify it.
 Reach for the skyline Skyline is an online curio from GitHub that lets you input a user’s name and get a 3D rendering of that user’s contributions to the platform.</description>
    </item>
    
    <item>
      <title>Accessible colour contrasts with {coloratio}</title>
      <link>https://www.rostrum.blog/2020/12/30/coloratio/</link>
      <pubDate>Wed, 30 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/12/30/coloratio/</guid>
      <description>This blog’s theme: insufficient contrast!  tl;dr I made a small R package called {coloratio} to evaluate colour-contrast ratios for accessibility. Then I found out that {savonliquide} already exists to do this.
 Accessible charts The UK government’s website, GOV.UK, was developed with user needs and accessibility in mind. I’ve been using {ggplot2} to recreate the simple, accessible chart styles suggested for use on GOV.UK by the Government Statistical Service.</description>
    </item>
    
    <item>
      <title>Mapping londonmapbot tweets with {leaflet}</title>
      <link>https://www.rostrum.blog/2020/12/20/londonmapbot-leaflet/</link>
      <pubDate>Sun, 20 Dec 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/12/20/londonmapbot-leaflet/</guid>
      <description>Closest I’ve been to Leicester Square since the start of lockdown.  tl;dr I recently made a Twitter bot with R, {rtweet}, MapBox and GitHub Actions – londonmapbot – that tweets images of random coordinates in London. I decided to explore them interactively by creating a simple {leaflet} map. You can jump directly to the map).
 The bot I built the londonmapbot Twitter bot as a fun little project to get to grips with GitHub Actions.</description>
    </item>
    
    <item>
      <title>The US electoral college with {tilegramsR}</title>
      <link>https://www.rostrum.blog/2020/11/21/president-tilegram/</link>
      <pubDate>Sat, 21 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/11/21/president-tilegram/</guid>
      <description>tl;dr The {tilegramsR} package for R contains a geospatial object for mapping the US electoral college. I amended it for states that use the congressional district method and generated a minimalist map of the results for the 2020 US presidential election.1
 Send a cartogram It’s usually best to scale subnational divisions by voter count when visualising election results. This is because election outcomes are decided by people, not land area.</description>
    </item>
    
    <item>
      <title>AGÜEROOOOO with {ggsoccer} and {gganimate}</title>
      <link>https://www.rostrum.blog/2020/05/02/aguerooooo/</link>
      <pubDate>Sat, 02 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/05/02/aguerooooo/</guid>
      <description>tl;dr I used R to animate the goal that won Manchester City the 2011/12 Premier League title in breathtaking fashion.
Inspired by Ryo Nakagawara, who makes awesome R-related soccer content that you can find on his site and on Twitter.1
 The problem Soccer has run dry.
Leagues have been cancelled or decided on a contentious points-per-game basis given that there’s no precedent. The fate of the 2019/20 English Premier League season is still unknown.</description>
    </item>
    
    <item>
      <title>Plotception with {ggpattern}</title>
      <link>https://www.rostrum.blog/2020/04/05/yo-dawg/</link>
      <pubDate>Sun, 05 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/04/05/yo-dawg/</guid>
      <description>Yo dawg Followers of this blog might remember the unveiling of cloud_pie(), the greatest new visualisation technique of the 21st Century.
Luckily, R-package machine mikefc of @coolbutuseless has released {ggpattern}, which lets you image- or pattern-fill the bars of your {ggplot2} plot. Most usefully with pictures of kittens or Bill Murray.
This has opened the door to yet another ground-breaking viz. The secret yet obvious real purpose of {ggpattern} is to put plots inside your plots.</description>
    </item>
    
    <item>
      <title>A Pokémon sprite carousel with {slickR}</title>
      <link>https://www.rostrum.blog/2020/02/05/slickr/</link>
      <pubDate>Wed, 05 Feb 2020 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2020/02/05/slickr/</guid>
      <description>Ride the carousel I was browsing GitHub and the {slickR} package by Jonathan Sidi was suggested as a repo to explore.
{slickR} is an htmlwidget that generates carousels using the Slick JavaScript library by Ken Wheeler.
You’ve seen carousels before. They’re pretty ubiquitous for scrolling horizontally through images on websites. {slickR} provides a neat way of embedding these in R Markdown documents and Shiny apps. Plus, the elements in the carousel can be basically anything (iframes, plots, etc), not just images.</description>
    </item>
    
    <item>
      <title>Handle London travel data with {oystr}</title>
      <link>https://www.rostrum.blog/2019/12/23/oystr/</link>
      <pubDate>Mon, 23 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2019/12/23/oystr/</guid>
      <description>tl;dr  Problem: I wanted to analyse my Transport for London (TfL) travel data Solution: I came up with the R package name {oystr} and a hex sticker design Practical solution: I actually wrote the package Self-flagellation: it has zero dependencies Further problem: TfL won’t give me information I need to complete it properly Result: blog it and move on Revelation: I’ve spent more than 53 days on TfL trains since Autumn 2014 😱   Clam-ouring for a package Transport for London (TfL) operates the travel system in London.</description>
    </item>
    
    <item>
      <title>A year of rostrum.blog</title>
      <link>https://www.rostrum.blog/2019/04/14/one-year/</link>
      <pubDate>Sun, 14 Apr 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2019/04/14/one-year/</guid>
      <description>Happy first birthday 🎉 One year, visualised There’s been 27 posts on rostrum.blog in its first year, so about one every two weeks.
This interactive graphic shows the publishing frequency, where each dot is a post and the x-axis is time. Turn your mobile to landscape mode to see it in full.
 {&#34;x&#34;:{&#34;data&#34;:[{&#34;x&#34;:[17635,17648,17663,17670,17676,17687,17708,17712,17724,17729,17738,17786,17798,17817,17839,17856,17860,17864,17889,17900,17914,17928,17941,17954,17959,17973,17993],&#34;y&#34;:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],&#34;text&#34;:[&#34;publish_date: 2018-04-14
title: R Trek: exploring stardates&#34;,&#34;publish_date: 2018-04-27
title: TWO DOGS IN TOILET ELDERLY LADY INVOLVED&#34;</description>
    </item>
    
    <item>
      <title>Graphing the Relayverse of podcasts</title>
      <link>https://www.rostrum.blog/2019/02/14/relayverse/</link>
      <pubDate>Thu, 14 Feb 2019 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2019/02/14/relayverse/</guid>
      <description>The Relay FM podcast network, visualised. View it here.  tl;dr I made an interactive graph network of the podcast host relationships on Relay FM using R. You can interact with it in a separate window and find out below how it was made.
I refreshed the data and style of the visualisation on 02 Jan 2020.
 Podcast networks Podcasting is becoming big business. Music-streaming giant Spotify just acquired the podcast network Gimlet for a reported $200 million.</description>
    </item>
    
    <item>
      <title>Quantify colour by {magick}</title>
      <link>https://www.rostrum.blog/2018/11/25/art-of-the-possible/</link>
      <pubDate>Sun, 25 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2018/11/25/art-of-the-possible/</guid>
      <description>‘Walrus rainbow vomit’ is a sentence I’d never thought I’d type (via Giphy)   Note
I later learnt about {colorfindr} by David Zumbach, which can extract colours from images, provide composition details and generate palettes. Check it out.
 tl;dr I used the {magick} package in R to map an image’s colours to their nearest match from a simplified palette, then quantified how much of the image was covered by each colour in that palette.</description>
    </item>
    
    <item>
      <title>Waggle dance with {ggbeeswarm} and {emoGG}</title>
      <link>https://www.rostrum.blog/2018/11/21/waggle-dance/</link>
      <pubDate>Wed, 21 Nov 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2018/11/21/waggle-dance/</guid>
      <description>A bee scene from irreverent 90s Nicktoon ‘Hey Arnold!’ (via Giphy)  How to plot grouped continuous data? A boxplot lets you show continuous data split by categories, but it hides the data points and doesn’t tell you much about distribution. A violin chart will show the distribution but you still don’t know about the density of data.
Stripcharts show the data for each category as individual points. The points can be layered on top of each other where they take the same Y value and can be stretched arbitrarily along the X axis.</description>
    </item>
    
    <item>
      <title>Engifification in R with {gifski}</title>
      <link>https://www.rostrum.blog/2018/07/26/engifification-in-r-with-gifski/</link>
      <pubDate>Thu, 26 Jul 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2018/07/26/engifification-in-r-with-gifski/</guid>
      <description>A sloth. On a pizza slice. In space. (via Giphy)  gifski() You and I both know that the world needs more intergalatic-sloth-pizza gifs.
Great news: ‘the fastest gif encoder in the universe’ has been created. The {gifski} package for R is now on CRAN. It’s a simple yet fast and powerful way to create gifs from within R, built by Jeroen Ooms) for rOpenSci.
The obvious application is for creating gifs from plots, as in the following example from the ROpenSci announcement, which shows life expectancy by GDP per capita with a different year for each frame of the gif.</description>
    </item>
    
    <item>
      <title>Cloudy with a chance of pie</title>
      <link>https://www.rostrum.blog/2018/05/25/cloud-pie/</link>
      <pubDate>Fri, 25 May 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2018/05/25/cloud-pie/</guid>
      <description>The pinnacle of visualisation Great news everyone: I’ve taken the best of two stellar data visualisations and smashed them together into something that can only be described as perfection.
Let me set the scene. There’s three things we can agree on:
Everyone loves pie charts, particularly when they’re in 3D, exploded and tilted. Word clouds aren’t at all overused. I have too much time on my hands.  With that in mind, I’ve artfully melded clouds and pies into the function cloud_pie(), which I think sounds rather sweet.</description>
    </item>
    
    <item>
      <title>R Trek: exploring stardates</title>
      <link>https://www.rostrum.blog/2018/04/14/r-trek-exploring-stardates/</link>
      <pubDate>Sat, 14 Apr 2018 00:00:00 +0000</pubDate>
      
      <guid>https://www.rostrum.blog/2018/04/14/r-trek-exploring-stardates/</guid>
      <description>Captain’s log  Star date 71750.51. Our mission is to use R statistical software to extract star dates mentioned in the captain’s log from the scripts of Star Trek: The Next Generation and observe their progression over the course of the show’s seven seasons. There appears to be some mismatch in the frequency of digits after the decimal point – could this indicate poor ability to choose random numbers?</description>
    </item>
    
  </channel>
</rss>