From 0f368e0e7e08036eddf87aa337b5c2d27906583c Mon Sep 17 00:00:00 2001 From: Pier-Luc St-Onge Date: Mon, 15 May 2023 17:07:15 -0400 Subject: [PATCH] Remplacer Plotnine par Altair --- extras/solutions/vega-datasets2.ipynb | 38 ++++++++++++++----------- extras/vega-datasets2.ipynb | 40 +++++++++++++++------------ 2 files changed, 44 insertions(+), 34 deletions(-) diff --git a/extras/solutions/vega-datasets2.ipynb b/extras/solutions/vega-datasets2.ipynb index 680fd95..2398557 100644 --- a/extras/solutions/vega-datasets2.ipynb +++ b/extras/solutions/vega-datasets2.ipynb @@ -315,7 +315,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "a) Importez le module Plotnine sous le nom `p9`." + "a) Importez le module Altair sous le nom `alt`." ] }, { @@ -324,7 +324,7 @@ "metadata": {}, "outputs": [], "source": [ - "import plotnine as p9" + "import altair as alt" ] }, { @@ -449,13 +449,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "h) Enfin, créez un graphique `ggplot()` avec `p9` de telle sorte que :\n", + "h) Enfin, créez un graphique Altair avec `alt` de telle sorte que :\n", "* Les `Mois` soient en axe des `x`.\n", "* Les `Valeur` soient en axe des `y`.\n", - "* Les `Valeurs` influencent la couleur (`color`).\n", - "* Une courbe s'affiche pour chaque type de `Valeurs`.\n", - "* Les couleurs `red` et `black` soit assignées via une liste dans `p9.scale_color_manual()`.\n", - "* Un titre soit ajouté avec `ggtitle()`." + "* Une courbe de couleur s'affiche pour chaque type de `Valeurs`.\n", + " * Les couleurs `red` et `black` seront assignées via une liste\n", + " `range` dans `alt.Scale()` selon le `domain` `Basses` et `Hautes`.\n", + "* Un titre soit ajouté avec `properties(title=)`.\n", + "* Permettre une navigation interactive dans le graphique." ] }, { @@ -464,14 +465,19 @@ "metadata": {}, "outputs": [], "source": [ - "(p9.ggplot(data=valeurs_finales,\n", - " mapping=p9.aes(x='Mois',\n", - " y='Valeur',\n", - " color='Valeurs'))\n", - " + p9.geom_line()\n", - " + p9.scale_color_manual(['red', 'black'])\n", - " + p9.ggtitle(\"Valeurs basses et hautes du S&P 500 selon le mois\")\n", - ")" + "couleurs = alt.Scale(\n", + " domain=['Basses', 'Hautes'],\n", + " range=['red', 'black'],\n", + ")\n", + "\n", + "alt.Chart(valeurs_finales).mark_line().encode(\n", + " x=alt.X('Mois'),\n", + " y=alt.Y('Valeur'),\n", + " color=alt.Color('Valeurs', scale=couleurs),\n", + " tooltip=['Valeurs', 'Valeur'],\n", + ").properties(\n", + " title='Valeurs basses et hautes du S&P 500 selon le mois',\n", + ").interactive()" ] }, { @@ -527,7 +533,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.10" + "version": "3.10.5" } }, "nbformat": 4, diff --git a/extras/vega-datasets2.ipynb b/extras/vega-datasets2.ipynb index ca433be..f738bcd 100644 --- a/extras/vega-datasets2.ipynb +++ b/extras/vega-datasets2.ipynb @@ -315,7 +315,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "a) Importez le module Plotnine sous le nom `p9`." + "a) Importez le module Altair sous le nom `alt`." ] }, { @@ -323,9 +323,7 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "###" - ] + "source": [] }, { "cell_type": "markdown", @@ -449,13 +447,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "h) Enfin, créez un graphique `ggplot()` avec `p9` de telle sorte que :\n", + "h) Enfin, créez un graphique Altair avec `alt` de telle sorte que :\n", "* Les `Mois` soient en axe des `x`.\n", "* Les `Valeur` soient en axe des `y`.\n", - "* Les `Valeurs` influencent la couleur (`color`).\n", - "* Une courbe s'affiche pour chaque type de `Valeurs`.\n", - "* Les couleurs `red` et `black` soit assignées via une liste dans `p9.scale_color_manual()`.\n", - "* Un titre soit ajouté avec `ggtitle()`." + "* Une courbe de couleur s'affiche pour chaque type de `Valeurs`.\n", + " * Les couleurs `red` et `black` seront assignées via une liste\n", + " `range` dans `alt.Scale()` selon le `domain` `Basses` et `Hautes`.\n", + "* Un titre soit ajouté avec `properties(title=)`.\n", + "* Permettre une navigation interactive dans le graphique." ] }, { @@ -464,14 +463,19 @@ "metadata": {}, "outputs": [], "source": [ - "(p9.ggplot(data=valeurs_finales,\n", - " mapping=p9.aes(x='###',\n", - " y='###',\n", - " color='###'))\n", - " + p9.geom_###()\n", - " + p9.###(['red', 'black'])\n", - " + p9.###(\"Valeurs basses et hautes du S&P 500 selon le mois\")\n", - ")" + "couleurs = alt.###(\n", + " ###=['Basses', 'Hautes'],\n", + " ###=['red', 'black'],\n", + ")\n", + "\n", + "alt.###(valeurs_finales).mark_###().encode(\n", + " x=alt.X('###'),\n", + " y=alt.Y('###'),\n", + " color=alt.Color('###', scale=###),\n", + " tooltip=['Valeurs', 'Valeur'],\n", + ").###(\n", + " ###='Valeurs basses et hautes du S&P 500 selon le mois',\n", + ").###()" ] }, { @@ -527,7 +531,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.10" + "version": "3.10.5" } }, "nbformat": 4,