import altair as alt
import numpy as np
import pandas as pd
import seaborn as sns
= sns.load_dataset("penguins")
dt
(alt.Chart(dt)
.mark_circle()
.encode('flipper_length_mm', scale=alt.Scale(zero=False)),
alt.X('body_mass_g', scale=alt.Scale(zero=False)),
alt.Y(='species',
color=['species', 'island', 'sex']
tooltip
) )
Python visualization with Altair
I have been interested in finding a visualization library for Python that is similiar to ggplot2 in R. I like the quick plots in pandas but Matplotlib has never worked for me.
For customized visualizations I like the ggplot2 approach with layers. Its grammar of graphics provides a good balance between adjusting a visualization and productivity. The code with layers is nicely readable.
Vega-Altair, a Python library, uses a grammar to create visualization as well. So I gave it a try and it went well – see code below.
pandas and Altaire are likely to be the visualization tools that I use primarily in Python.
Here is some information on the penguins dataset 🐧 in the visualization. I didn’t want to use mtcars 🚗 again.
dt
species | island | bill_length_mm | bill_depth_mm | flipper_length_mm | body_mass_g | sex | |
---|---|---|---|---|---|---|---|
0 | Adelie | Torgersen | 39.1 | 18.7 | 181.0 | 3750.0 | Male |
1 | Adelie | Torgersen | 39.5 | 17.4 | 186.0 | 3800.0 | Female |
2 | Adelie | Torgersen | 40.3 | 18.0 | 195.0 | 3250.0 | Female |
3 | Adelie | Torgersen | NaN | NaN | NaN | NaN | NaN |
4 | Adelie | Torgersen | 36.7 | 19.3 | 193.0 | 3450.0 | Female |
... | ... | ... | ... | ... | ... | ... | ... |
339 | Gentoo | Biscoe | NaN | NaN | NaN | NaN | NaN |
340 | Gentoo | Biscoe | 46.8 | 14.3 | 215.0 | 4850.0 | Female |
341 | Gentoo | Biscoe | 50.4 | 15.7 | 222.0 | 5750.0 | Male |
342 | Gentoo | Biscoe | 45.2 | 14.8 | 212.0 | 5200.0 | Female |
343 | Gentoo | Biscoe | 49.9 | 16.1 | 213.0 | 5400.0 | Male |
344 rows × 7 columns