Introduction
Altair est un module Python dedie aux graphiques et dont la syntaxe s’inspire de la Grammaire des Graphiques du package R ggplot2 : on construit un graphique etape par etape par des appels de methodes.
Le package R homonyme s’appuie sur le module Python, en particulier il ne peut etre utilise que si vous avez un executable Python sur votre machine. On passe du code Python au code R en remplacant le “.” par des “$” et les listes Python par des listes ou vecteurs R.
Quelques documents utiles :
- le guide Python https://altair-viz.github.io/user_guide/encoding.html#encoding-data-types
- la documentation R https://vegawidget.github.io/altair/articles/example-gallery-08-interactive-charts.html
- un tutorial sur Colab https://colab.research.google.com/github/altair-viz/altair-tutorial/blob/master/notebooks/06-Selections.ipynb
# modules et donnees Python
import altair as alt
from vega_datasets import data
= data.cars() donnees
# packages et donnees R
library("altair")
= py$donnees donnees
Graphique simple en Python
= alt.Chart(donnees).mark_circle(size = 60).encode(
chart_simple = 'Horsepower',
x = 'Miles_per_Gallon',
y = 'Origin') color
Graphiques interactifs
avec infobulles en R
On ajoute des infobulles et la possibilite de zoomer sur la zone graphique ou la faire glisser a la souris.
$Chart(donnees)$mark_circle(size = 60)$encode(
altx = 'Horsepower',
y = 'Miles_per_Gallon',
color = 'Origin',
tooltip = c('Name', 'Origin', 'Horsepower', 'Miles_per_Gallon')
$interactive() )
avec legende interactive en Python
On ajoute en plus la possibilite de cliquer sur la legende pour filtrer sur un pays.
= alt.selection_multi(fields = ['Origin'], bind = 'legend')
selection
= alt.Chart(donnees).mark_circle(size = 60).encode(
chart_legende = 'Horsepower',
x = 'Miles_per_Gallon',
y = 'Origin',
color = ['Name', 'Origin', 'Horsepower', 'Miles_per_Gallon'],
tooltip = alt.condition(selection, alt.value(1), alt.value(0.2))
opacity
).interactive( ).add_selection(selection)
avec bouton de controle en R
La notation ‘Origin:N’ indique que la variable Origin utilisee pour les couleurs doit etre traitee comme une variable nominale, alors que ‘Origin:O’ la declare comme ordinale et produit des couleurs degradees.
= alt$binding_select(options = list('Europe','Japan','USA'))
input_dropdown = alt$selection_single(fields = list('Origin'), bind = input_dropdown, name = "Pays d'")
selection = alt$condition(selection,
color $Color('Origin:N', legend = NULL),
alt$value('lightgray'))
alt
$Chart(donnees)$mark_point()$encode(
altx = 'Horsepower',
y = 'Miles_per_Gallon',
color = color,
tooltip = 'Name'
$add_selection(selection) )
graphiques lies en Python
On selectionne une zone rectangulaire dans le nuage de points et on obtient la repartition des pays dans cette zone. L’operateur “|” place les graphiques cote a cote, le “&” les place l’un au-dessus de l’autre.
= alt.selection_interval()
interval
= alt.Chart(donnees).mark_circle(size = 60).encode(
nuage = 'Horsepower',
x = 'Miles_per_Gallon',
y = alt.condition(interval, 'Origin', alt.value('lightgray')),
color
).add_selection(interval)
= alt.Chart(donnees).mark_bar().encode(
histo = 'count()',
x = 'Origin',
y = 'Origin'
color
).transform_filter(interval)
= nuage | histo chart_lies