150 lines
5.2 KiB
Markdown
150 lines
5.2 KiB
Markdown
# Introduction à Plotly pour Python
|
||
|
||
---
|
||
|
||
## Qu'est-ce que Plotly ?
|
||
|
||
Plotly est une bibliothèque open-source de visualisation de données en Python. Elle permet de produire des graphiques interactifs de haute qualité directement depuis Python, et supporte de nombreux types de graphiques, y compris des graphiques 3D et des cartes géographiques.
|
||
|
||
---
|
||
|
||
## Afficher des diagrammes avec Plotly
|
||
|
||
Plotly propose une variété de diagrammes pour visualiser les données. Voici quelques exemples sur comment afficher des nuages de points, des histogrammes et des histogrammes en barres avec facettes.
|
||
|
||
---
|
||
|
||
### Afficher un nuage de points
|
||
|
||
Pour créer un nuage de points avec Plotly, vous pouvez utiliser la classe `Scatter` de `plotly.graph_objects` :
|
||
|
||
```{.python .numberLines}
|
||
import plotly.graph_objects as go
|
||
|
||
# Supposons que nous ayons deux listes x et y
|
||
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='markers'))
|
||
fig.show()
|
||
```
|
||
|
||
L'utilisation classique de Plotly consiste à créer un objet de type `Figure` représentant un graphique, puis d'y associer un type de diagramme. L'affichage du graphique via la méthode `show()` lance un serveur web simple et le navigateur par défaut de votre système pour afficher le contenu.
|
||
|
||
---
|
||
|
||

|
||
|
||
Notez que ce genre de diagramme est rendu interactif graĉe aux technologies du web; vous pouvez ainsi zoomer ou passer votre souris sur des sections pour observer des boîtes descriptives des données.
|
||
|
||
---
|
||
|
||
### Afficher un histogramme avec facettes
|
||
|
||
Pour créer un histogramme avec facettes avec Plotly, vous pouvez utiliser la classe `Histogram` et préparer un graphique à multiples diagrammes via `make_subplots` :
|
||
|
||
```{.python .numberLines}
|
||
from plotly.subplots import make_subplots
|
||
|
||
# Nous avons un DataFrame df avec une colonne 'value' et une colonne 'category'
|
||
fig = make_subplots(rows=1, cols=2)
|
||
# Parcourir toutes les catégories différentes de la colonne catégorie
|
||
for i, cat in enumerate(df['category'].unique()):
|
||
# Et ajouter un diagramme en barres pour les valeurs de la catégorie
|
||
fig.add_trace(go.Histogram(x=df[df['category']==cat]['value']), row=1, col=i+1)
|
||
fig.show()
|
||
```
|
||
|
||
---
|
||
|
||
### Afficher un histogramme en barres avec facettes
|
||
|
||
Pour créer un histogramme en barres avec facettes avec Plotly, vous pouvez utiliser la classe `Bar` et la fonction `subplot` :
|
||
|
||
```{.python .numberLines}
|
||
from plotly.subplots import make_subplots
|
||
|
||
Supposons que nous ayons un DataFrame pandas df avec une colonne 'value' et deux colonnes catégorielles 'category1' et 'category2'
|
||
fig = make_subplots(rows=1, cols=2)
|
||
for i, cat in enumerate(df['category1'].unique()):
|
||
fig.add_trace(go.Bar(x=df[(df['category1']==cat)]['category2'], y=df[(df['category1']==cat)]['value']), row=1, col=i+1)
|
||
fig.show()
|
||
```
|
||
|
||
---
|
||
|
||
### Types de graphiques réalisables avec Plotly
|
||
|
||
Les quelques exemples précédents ont permis de montrer la simplicité d'utilisation de Ploty/Dash pour une variété de diagrammes, mais selon vos besoins, il en existe de nombreux autres, décrits dans la page officielle suivante :
|
||
|
||
[Plotly Charts](https://plotly.com/python/basic-charts/)
|
||
|
||
---
|
||
|
||
La majorité des diagrammes réalisables avec Plotly sont importables en tant que classes dans le package `plotly.express`.
|
||
|
||
---
|
||
|
||
### Diagramme en barres simple
|
||
|
||
Si vous avez un `DataFrame` simple avec deux colonnes, par exemple une colonne d'identifiants et une colonne de valeurs associées, vous pouvez très simplement afficher un diagramme en barres avec Plotly :
|
||
|
||
```python
|
||
import pandas as pd
|
||
from plotly.express import bar
|
||
|
||
df = pd.DataFrame(data={"label": ["Citron", "Pomme", "Mangue"], "price": [1.99, 3.97, 6.8]})
|
||
plot = bar(df, x="label", y="price")
|
||
plot.show()
|
||
```
|
||
|
||
---
|
||
|
||
### Diagramme en secteurs groupés
|
||
|
||
Si vos données contiennent des informations qui peuvent être regroupées en sous-catégories (par ex. vous avez des ventes par ville, et plusieurs villes peuvent appartenir au même pays), un diagramme en secteurs à plusieurs anneaux peut vous permettre d'explorer vos données de façon intéressante :
|
||
|
||
|
||
```python
|
||
import pandas as pd
|
||
from plotly.express import sunburst
|
||
|
||
df = pd.DataFrame(data={
|
||
"country": ["France", "France", "Spain", "Spain"],
|
||
"city": ["Montpellier", "Bordeaux", "Madrid", "Valencia"],
|
||
"sales": [150_000, 127_000, 97_200, 137_250]
|
||
})
|
||
plot = sunburst(df, path=["country", "city"], values="sales")
|
||
plot.show()
|
||
```
|
||
|
||
---
|
||
|
||
## Configurer le thème des graphiques Plotly
|
||
|
||
Avec Plotly, vous pouvez personnaliser l'apparence de vos graphiques en utilisant des thèmes.
|
||
|
||
---
|
||
|
||
### Styles des graphiques
|
||
|
||
Plotly offre plusieurs thèmes prédéfinis que vous pouvez appliquer à vos graphiques :
|
||
|
||
```{.python .numberLines}
|
||
import plotly.io as pio
|
||
|
||
pio.templates.default = "plotly_dark" # Exemple avec le thème "plotly_dark"
|
||
```
|
||
|
||
---
|
||
|
||
### Définir des palettes de couleurs
|
||
|
||
Vous pouvez également personnaliser les couleurs utilisées dans vos graphiques avec Plotly :
|
||
|
||
```{.python .numberLines}
|
||
fig = go.Figure(
|
||
data=go.Scatter(x=x, y=y, mode='markers', marker=dict(color='rgba(152, 0, 0, .8)'))
|
||
)
|
||
fig.show()
|
||
```
|
||
|
||
Dans cet exemple, nous avons utilisé la propriété `marker` pour changer la couleur des points dans le nuage de points.
|