Visualizing networks in R: arc diagrams and hive plots

[This article was first published on Revolutions, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Arc diagrams are an alternate way of representing two-dimensional graphs. Rather than scattering the nodes across the page connected by straight edges, you can instead arrange the nodes along a one-dimensional axis, and replace the straight edges with arcs between the nodes. While an arc diagram might not give as good a sense of the connections between the nodes as a traditional graph layout, judicious ordering of the nodes can help identify clusters. It's also a useful format (especially in the vertical orientation) when you want to label each of the notes with other quantities in a table-like format.

Thanks to Gaston Sanchez, you can now create arc diagrams in R with the arcdiagram package. Gaston created the arc diagram below to visualize the characters in the Victor Hugo classic (and now a major motion picture) Les Miserables. Each character is connected by an arc if they appear together in the same chapter; the wider the arc, the more the characters appeared in chapters together. The ordering (and colour) of the nodes identify groups of characters that appear in the novel together.

Miserables_arcplotYou can find the complete code to create the arc diagram above, along with details on how to install the arcdiagream package, at Gaston's blog, Data Analysis Visually Enforced.

An extension to arc diagrams is the hive plot, where instead of the nodes being laid out along a single one-dimensional axis they are laid out along multiple axes. This can help reveal more complex clusters (if the nodes represent connected people, imagine for example laying out nodes along axes of both “income” and “enthicity”), and is a particularly useful way of visualizing graphs with many nodes and edges that look like a dense “hairball” using traditional graph layouts. Here's an example of a hive plot:

Hive plot

The above plot comes from the Hive Plots homepage, and shows the connections between similar genes (nodes) in three related genomes (SL, BA and SN). You can create hive plots in R using the hiveR package.

To leave a comment for the author, please follow the link and comment on their blog: Revolutions. offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)