Visualizing Science: ciclid fishes in a feeding frenzy

Post by Jimena Golcher-Benavides


Fig. 1. Dietary flexibility of cichlid fishes during a feeding frenzy over juvenile clupeids. On the left, the width of the flow bars represents the number of species (species richness) within functional groups feeding on juvenile fish or present during the feeding frenzy event and on the right, the width represents the relative abundance within functional groups. Light colors represent functional groups that were present but not attacking juvenile fish; bold colors represent species that were feeding on the clupeid schools (herbivorous feeding guild is color coded in green, omnivorous in yellow and carnivorous in orange). Credit: © Jimena Golcher-Benavides, 2018

I made this figure (Fig.1) for a scientific publication or to accompany a scientific talk. My main objective with this figure was to condense observational data collected underwater during an unusual feeding frenzy event in Lake Tanganyika, East Africa.

This figure was generated using the package Alluvial (Bojanowski and Edwards 2016) in R, version 3.4.2  (R Core Team 2013).

To generate this figure, I searched “plot types in r” on google images and at first something called a “chord diagram” struck me as an attractive way to represent various categorical variables. However, after some trouble-shooting, I realized that this was not appropriate for my kind of data.

Plotting multiple categorical variables can prove challenging when one is more used to dealing with continuous variables. A tutorial for a chord diagram also showed an image of an alluvial plot. This is when I realized that an alluvial was a promising for me to visualize trophic interactions. So, I followed this tutorial with several examples of plots.Once I had generated the figure, I moved on to Illustrator to more easily edit the font of the text labels and play a bit with both color palettes and transparencies. I was very happy with the final product, until I realized that my figure was not color-blind friendly.

​In Illustrator, one can double-check for this under View> Proof Setup> Color Blindness Protanopia-type or Deuteranopia-type.  After this, I added little cartoon-like figures of the fishes concerned and wrote a detailed legend for the reader.

The following three figures inspired my data visualization: 

Circle with several sectors; each sector is a different color, and the colors sort of arc across the circle from one side to another, connecting in more than one place.

Chord diagram developed by Fisseha Berhane

Figure divided by four white columns, which are broken up. Between the columns loop bands of orange and gray.

lluvial diagram of the Titanic data set, from Michal Bojanowski’s tutorial.

Figure divided by four columns, each broken up. Between the columns loop bands of orange, blue, green, and pink.

Alluvial plot representing asylum seeker application decisions in Europe, created by The Economist using Eurostat as source.

If I continued working on the data visualization, I would like to make it more attractive and also improve its readability.


  • Bojanowski M and Edwards R. 2016. Alluvial: R Package for Creating Alluvial Diagrams. R package version: 0.1-2, URL:>.
  • R Core Team. 2014. R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s