# 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. --- ![Exemple de diagramme de base Plotly](assets/images/plotly-chart-bar.png) 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.