I present a few different plot libraries for Python and R and show my favorites.
During my years as a physicist I have created a bunch of plots from data. My first experience was with xmgrace in 2011, which was already outdated back then. I tried gnuplot and later GNU Octave. I've made the transition to Python and Matplotlib, where I stayed several years. For my PhD I started using R, but skipped using base R plotting and directly went for ggplot, which still is my favorite plotting library as of today. My first industry job got me back to Python, where I tried to find something like ggplot. The first candidate was seaborn but I just didn't like it. It wanted to be ggplot for Python, but it is not. I eventually found Altair and was amazed. The interactivity with Vega-Lite is super cool. Bokeh provides even nicer interactive widgets, but the plotting interface in Python does not feel as declarative.
In this post I want to go through a somewhat simple plotting example and show how the different plotting libraries do that. We will be using the Anderson's Iris data set as that is built into R and Python libraries already and makes the examples reproducible without any extra data files.