119 lines
3.4 KiB
Markdown
119 lines
3.4 KiB
Markdown
## Introduction à Plotly/Dash pour Python
|
||
|
||
---
|
||
|
||
### Qu'est-ce que Dash ?
|
||
|
||
Dash est un outil associé à Plotly, permettant de générer des tableaux de bord web en Python.
|
||
|
||
---
|
||
|
||
### Afficher des diagrammes avec Plotly
|
||
|
||
Dash peut intégrer les diagrammes générés avec Plotly facilement. Dash existe dans deux versions :
|
||
|
||
- la version gratuite permet de créer programmatiquement ses propres tableaux de bord
|
||
- la version Entreprise, payante propose des outils visuels avancés de personnalisation de tableau de bord
|
||
|
||
---
|
||
|
||
### Installer Dash
|
||
|
||
Dash et Plotly sont disponibles sur le dépôt officiel [PyPI](https://pypi.org/). Il suffit donc d'ouvrir le terminal,
|
||
_en ayant activé votre environnement virtuel si nécessaire_, et de taper :
|
||
|
||
```bash
|
||
pip install plotly dash
|
||
```
|
||
|
||
---
|
||
|
||
#### Afficher un tableau HTML contenant un `DataFrame`
|
||
|
||
Dash permet simplement d'afficher un tableau paginé, représentant le contenu d'un DataFrame :
|
||
|
||
```{.python .numberLines}
|
||
from dash import Dash, html, dash_table
|
||
import pandas as pd
|
||
|
||
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder2007.csv')
|
||
|
||
# Créer une application Dash
|
||
app = Dash(__name__)
|
||
|
||
# Configurer la mise en page
|
||
app.layout = html.Div([
|
||
html.Div(children='My First App with Data'),
|
||
dash_table.DataTable(data=df.to_dict('records'), page_size=10)
|
||
])
|
||
|
||
# Créer un serveur web pour afficher le résultat
|
||
if __name__ == '__main__':
|
||
app.run(debug=True)
|
||
```
|
||
|
||
---
|
||
|
||
#### Afficher un histogramme avec facettes
|
||
|
||
Pour créer un histogramme avec facettes avec Plotly, vous pouvez utiliser la classe `Histogram` 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 une colonne catégorielle 'category'
|
||
fig = make_subplots(rows=1, cols=2)
|
||
for i, cat in enumerate(df['category'].unique()):
|
||
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()
|
||
```
|
||
|
||
---
|
||
|
||
### 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.
|