Skip to content

Commit 73043ee

Browse files
authored
retire l'historique inutile des données velib (#638)
1 parent edf92f1 commit 73043ee

File tree

6 files changed

+12
-28
lines changed

6 files changed

+12
-28
lines changed

_quarto.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ project:
55
- 404.qmd
66
- content/getting-started/index.qmd
77
- content/modelisation/index.qmd
8+
- content/visualisation/matplotlib.qmd
89

910
profile:
1011
default: fr

content/manipulation/05_parquet_s3.qmd

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ image: https://minio.lab.sspcloud.fr/lgaliana/generative-art/pythonds/python_clo
1515

1616
::: {.content-visible when-profile="fr"}
1717

18-
Nous avons vu dans les chapitres précédents comment récupérer, et harmoniser, des données issues de multiples sources: fichiers type CSV, API, _webscraping_, etc. Le panorama des manières possibles de consommer de la donnée serait incomplet sans évoquer un nouveau venu dans le paysage de la donnée, à savoir le format de données `Parquet`. Du fait de ses caractéristiques techniques pensées pour l'analyse de données, et de sa simplicité d'usage avec `Python`, ce format devient de plus en plus incontournable. Il s'agit d'ailleurs d'une pierre angulaire des infrastructures _cloud_ qui, depuis le milieu des années 2010, tendent à devenir l'environnement usuel dans le domaine de la _data science_ (pour plus de détails, voir le [cours de mise en production de Romain Avouac et moi](https://ensae-reproductibilite.github.io/website/chapters/big-data.html)).
18+
Nous avons vu dans les chapitres précédents comment récupérer, et harmoniser, des données issues de multiples sources: fichiers type CSV, API, _webscraping_, etc. Le panorama des manières possibles de consommer de la donnée serait incomplet sans évoquer un nouveau venu dans le paysage de la donnée, à savoir le format de données `Parquet`.
19+
20+
Du fait de ses caractéristiques techniques pensées pour l'analyse de données, et de sa simplicité d'usage avec `Python`, ce format devient de plus en plus incontournable. Il s'agit d'ailleurs d'une pierre angulaire des infrastructures _cloud_ qui, depuis le milieu des années 2010, tendent à devenir l'environnement usuel dans le domaine de la _data science_ (pour plus de détails, voir le [cours de mise en production de Romain Avouac et moi](https://ensae-reproductibilite.github.io/website/chapters/big-data.html)).
1921

2022
:::
2123

content/visualisation/01_matplotlib/_exo1_solution.qmd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
```{python}
2+
#| label: exo1-df1
23
df1 = (
34
df
45
.groupby('nom_compteur')

content/visualisation/01_matplotlib/_exo5_solution.qmd

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -103,26 +103,10 @@ If you prefer to represent this as a _lollipop_[^notecolor]:
103103

104104
::: {.content-visible when-profile="fr"}
105105
[^notecouleur]: J'ai retiré la couleur sur l'axe des ordonnées qui, je trouve, apporte peu à la figure voire dégrade la compréhension du message.
106-
107-
Enfin, sur l'ensemble de la période, la série prendra plutôt cette forme :
108106
:::
109107

110108
::: {.content-visible when-profile="en"}
111-
[^notecouleur]: I removed the color on the y-axis as I find it adds little to the figure and may even degrade the clarity of the message.
112-
113-
Finally, over the entire period, the series will look more like this:
109+
[^notecouleur]: I removed the color on the y-axis as I find it adds little to the figure and may even degrade message clarity
114110
:::
115111

116112

117-
```{python}
118-
count_by_month_since_start = (
119-
df
120-
.groupby('month')
121-
.agg({'sum_counts':'mean'})
122-
.reset_index()
123-
)
124-
count_by_month_since_start = count_by_month_since_start.rename(columns = {"sum_counts": "value"})
125-
figure3(count_by_month_since_start)
126-
```
127-
128-

content/visualisation/_prepare_data_bike.qmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#| code-fold: true
44
#| code-summary: "Code pour importer les données à partir du format Parquet"
55
#| label: download-bike-data
6-
6+
#| output: false
77
import os
88
import requests
99
from tqdm import tqdm

content/visualisation/matplotlib.qmd

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ bibliography: ../../reference.bib
2222

2323
Ce chapitre est consacré à la visualisation de données et propose une tâche classique du quotidien des _data scientists_ et _data engineers_ : la construction de figures utiles à un tableau de bord (_dashboard_). Pour faire ceci, nous allons répliquer quelques figures disponibles en ligne - pas toujours parfaites - et utiliser plusieurs écosystèmes de visualisation disponibles en `Python` afin d'en mesurer les forces et faiblesses.
2424

25+
2526
::: {.callout-tip}
2627
## Compétences à l'issue de ce chapitre
2728

@@ -45,7 +46,7 @@ Les bonnes visualisations de données, comme celles du _New York Times_, reposen
4546

4647
Transmettre une information synthétique de manière limpide à un public ne s'inventant pas, il est recommandé de réfléchir à la réception d'une visualisation et aux messages principaux que celle-ci est censée transmettre. Cette [présentation d'Eric Mauvière](https://ssphub.netlify.app/talk/2024-02-29-mauviere/) illustre, avec de nombreux exemples, la manière dont des choix de visualisation affectent la pertinence du message délivré.
4748

48-
Parmi les autres ressources que j'ai trouvées utiles par le passé, ce post de blog de `datawrapper`](https://blog.datawrapper.de/text-in-data-visualizations/) (une référence dans le domaine de la visualisation) est très intéressant. Ce [post de blog d'Albert Rapp](https://albert-rapp.de/posts/ggplot2-tips/10_recreating_swd_look/10_recreating_swd_look) est montre également comment construire graduellement une bonne visualisation de données et mérite d'être relu de temps en temps.
49+
Parmi les autres ressources que j'ai trouvées utiles par le passé, ce post de blog de [`datawrapper`](https://blog.datawrapper.de/text-in-data-visualizations/) (une référence dans le domaine de la visualisation) est très intéressant. Ce [post de blog d'Albert Rapp](https://albert-rapp.de/posts/ggplot2-tips/10_recreating_swd_look/10_recreating_swd_look) est montre également comment construire graduellement une bonne visualisation de données et mérite d'être relu de temps en temps.
4950

5051

5152
:::
@@ -154,7 +155,7 @@ Pour les chapitres de visualisation, il est vivement recommandé d’utiliser `P
154155

155156
Cela permet de visualiser les graphiques immédiatement sous chaque cellule de code, de les ajuster facilement, et de tester des modifications en temps réel.
156157

157-
À l’inverse, si l'on exécute des scripts depuis une console classique (par exemple en écrivant dans un fichier `.py` et en exécutant ligne à ligne avec <kbd>MAJ</kbd>+,<kbd>ENTREE</kbd> dans `VSCode`) les graphiques ne vont pas s'afficher dans une fenêtre popup_ ce qui nécessite de faire des commandes supplémentaires pour les enregistrer, avant d'ouvrir les exports manuellement et pouvoir corriger le cas échéant le code. L’expérience d’apprentissage en devient plus laborieuse.
158+
À l’inverse, si l'on exécute des scripts depuis une console classique (par exemple en écrivant dans un fichier `.py` et en exécutant ligne à ligne avec <kbd>MAJ</kbd>+,<kbd>ENTREE</kbd> dans `VSCode`) les graphiques ne vont pas s'afficher dans une fenêtre _popup_. Cela nécessite de faire des commandes supplémentaires pour les enregistrer, avant d'ouvrir les exports manuellement et pouvoir corriger le cas échéant le code. L’expérience d’apprentissage en devient plus laborieuse.
158159
:::
159160

160161
::::
@@ -209,6 +210,7 @@ Pour importer les librairies graphiques que nous utiliserons dans ce chapitre, i
209210

210211
```{python}
211212
#| echo: true
213+
#| label: import-libs-fig
212214
import matplotlib.pyplot as plt
213215
import seaborn as sns
214216
from plotnine import * #<1>
@@ -230,6 +232,7 @@ To import the graphical libraries we will use in this chapter, execute
230232

231233
```{python}
232234
#| echo: true
235+
#| label: import-libs-fig-en
233236
import matplotlib.pyplot as plt
234237
import seaborn as sns
235238
from plotnine import * #<1>
@@ -332,7 +335,6 @@ These elements are the minimum required to understand the logic of `matplotlib`.
332335

333336
{{< include "01_matplotlib/_exo1_solution.qmd" >}}
334337

335-
336338
::: {.content-visible when-profile="fr"}
337339
On commence à avoir quelque chose qui commence à transmettre un message synthétique sur la nature des données. On peut néanmoins remarquer plusieurs éléments problématiques (par exemple les labels) mais aussi des éléments ne correspondant pas (les titres des axes, etc.) ou manquants (le nom du graphique...).
338340

@@ -541,7 +543,6 @@ On va maintenant se concentrer sur la dimension temporelle de notre jeu de donn
541543
- Un diagramme en barre synthétisant l'information de notre jeu de données de manière mensuelle ;
542544
- Des séries instructives sur la dynamique temporelle. Cela sera l'objet de la prochaine partie.
543545

544-
Avant cela, nous allons enrichir ces données pour bénéficier d'un historique plus long, permettant notamment d'avoir la période Covid dans nos données, ce qui présente un intérêt du fait de la dynamique particulière du trafic dans cette période (arrêt brutal, reprise très forte...).
545546
:::
546547

547548
::: {.content-visible when-profile="en"}
@@ -559,13 +560,8 @@ We will now focus on the temporal dimension of our dataset using two approaches:
559560

560561
- A bar chart summarizing the information in our dataset on a monthly basis;
561562
- Informative series on temporal dynamics, which will be the subject of the next section.
562-
563-
Before that, we will enhance this data to include a longer history, particularly encompassing the Covid period in our dataset. This is interesting due to the unique traffic dynamics during this time (sudden halt, strong recovery, etc.).
564563
:::
565564

566-
{{< include "_historical_data_bike.qmd" >}}
567-
568-
569565
::: {.content-visible when-profile="fr"}
570566
Pour commencer, reproduisons la troisième figure qui est, encore une fois, un _barplot_. Ici, sur le plan sémiologique, ce n'est pas justifié d'utiliser un _barplot_, une simple série suffirait à fournir une information similaire.
571567

0 commit comments

Comments
 (0)