Visualization workflow - reproducible vs hand-edited vs?



Interesting presentation here on designing visualizations for the public:

It makes me wonder what workflow people use for final visualizations? I usually stick with what I can do in ggplot2 and rmarkdown. That makes it hard to tweak plots with annotations, highlights, etc. and therefore they don't communicate as well as they might with some hand work. I'm reluctant to hand edit plots (e.g. in Inkscape) because I re-create them so often with new or updated data and I'm not eager to step outside a reproducible workflow. Curious what others do. I guess the options are

  • Stick with ggplot2 and fairly simple styling (where I am)
  • Try harder with ggplot2, adding annotations, callouts, etc with ggplot2 commands (seems hard, maybe I just need examples and practice?)
  • Export to a vector drawing program to finish.



I mostly stick with what I can do pretty easily. But much of my work really must be easy to reproduce and I don't have the time & warm bodies required to bespoke a lot. But I could imagine that if I was creating something for publication, I'd do more polishing. But I'm typically creating business graphics that I'll have to recreate again in a quarter (or less). And that needs to be automated as much as possible.


Awesome presentation from Jonathan Corum, who is a total master of his craft!

I had a nice little convo with Nathan Yau (of, which is one of my favourite viz sites) about this ~a year or so back. Alas, it was in a "Members Only" tutorial about using Illustrator with R, so I'm screenshotting it below for proof…but for accessibility's sake, the gist:

  • I've used illustrator to clean things up when it's a visualization/graphic that's meant for print/static and has nothing to do with research and/or data that will change.
  • I only hand edit things that aren't visual encodings (Nathan says this same thing, mapping visual elements to data is done in R).
  • I do this as little as possible — both because it's not reproducible, and because I'm not great with illustrator (I happen to own Adobe CS6, but I maintain that the skills involved in truly knowing Illustrator/Photoshop are akin to knowing another programming language. I can do one thing well in PhotoShop – make gifs – and even that involves a workflow I've honed over time).
  • Hand editing is super time consuming, and only worth it (IMHO) if you have a specific medium in mind (e.g. a journal article, or The New York Times print edition, in Jonathan's case).

Edit: Link to hanpuku, which links Illustrator and d3.js through some wizardry I don't totally understand, but I bet someone better with either of those tools could!


Thanks Mara and JD. I've been working on several reports that are intended to convince or convey an idea more than just showing the data so I'm trying to incorporate "storytelling" ideas. Much of the advice I read revolves around making visualizations more self contained. It sounds like I need to break out of my comfortable & repeatable ggplot2 environment to get to the next level.


Whenever I do something by hand–either tweaking plots in Illustrator or building tables in Excel—it's always because I think it'll be faster and that I won't be reproducing it. And I always regret it when I have to rebuild them 50 times :cry: