Medium’s Chart Options

The RJMetrics content marketing team has recently been evaluating Medium as the sole platform we use for all of our publishing. We’ve had a struggle attempting to figure out how to embed charts into a Medium post — we highly value interactivity and currently use HighCharts Cloud to embed posts into our blog, The Data Point. This has literally been our only frustration with transitioning all of our content to Medium recently. Every other aspect of the evaluation has gone exceedingly well.

Strangely, it seems that Medium itself made an open source chart builder, which even has a hosted option, but those charts are not embeddable in Medium. With that, I was somewhat frustrated — maybe there were no options yet to embed dynamic charts! Blergh.

This seemed to be confirmed by the fact that basically every piece of data journalism I’ve seen on Medium to-date has embedded charts in image format. While images work, they’re extremely limiting in terms of what you can provide. There are times when the interactivity of a chart has driven what we could produce, as it allows the reader to explore the data on their own.

Introducing Embedly

This morning I made a bit of a breakthrough. Medium apparently gets (some? all?) of its embeddable content via a tool called Embedly. Anything that works with Embedly will work with Medium. And Embedly has charting options! Here are two examples I have found:

Silk

Chartblocks

Graphiq

Graphiq is a neat solution — they have what I consider to be the most attractive visualization options and they clearly have thought a lot about how to visualize data. This makes me really want to like them. However, I don’t think it’s actually possible to build your own charts based on your own data, which, if this is actually true, is somewhat perplexing to me.

Update: I confirmed that it is not possible to visualize your own data in Graphiq. The tool is specifically built to analyze the data they store.

JSFiddle

If you’ve ever used JSFiddle, you can embed those as well, but it’s not really a “chart builder” and the embed options are not exactly what you’d want:

With JSFiddle, you can embed any Javascript you want, enabling you to use libraries like Highcharts and D3. But unfortunately, the current embed doesn’t focus readers on the “Result” tab and therefore leads to what could at best be termed a suboptimal reading experience.

My initial impressions

There’s room to improve across the board here:

  • All of these options are pretty minimally functional. I would love more options for both visualization and interactivity.
  • None of them are particularly well-designed. Or at least, the embeds don’t fit well within Medium’s design aesthetic. The best along this dimension is Chartblocks, just because its design is so simple.
  • Based on just a little testing, these options are not responsive. That’s really important within the context of Medium given how focused the platform is on readability on all devices.

So—not great. That said, I’m such a big believer in interactivity within data viz that I plan on using the options I have rather than retreating to posting images. I’ll keep watching the available tools and adjust, as I’m sure there will continue to be progress.

How about tables?

I’ve played around a bit with Airtable recently, which has an Embedly integration. It’s not what I would consider the very best embedded table experience, but it does present tabular data with options to download the CSV. Would love to hear if others have found tabular data embed options with more minimal formatting.

Start making interactive charts, people.

I did plenty of Googling about this topic. “Javascript charts medium”, “embed charts in medium”, and many other search terms turned up absolutely blank. I’m not sure if others have tried and given up, but they haven’t written about it. So hopefully this is helpful.

Interactive charts are far more rich experiences for readers: they allow mouseovers, series selection, zooming, data exports, and more.

Stop embedding images!

PS: If you find other options, please leave them in the comments and I will update this post. Hopefully this article can serve as a resource guide.