Graphique utilisant Plotly en Python

La visualisation de données est un moyen de comprendre de grandes quantités de données. Certaines tendances et certains motifs peuvent passer inaperçus au format texte. La visualisation des données facilite donc la compréhension de ce que les données tentent de dire en les visualisant à l'aide de différents graphiques..

De la documentation officielle:

plotly.py est une bibliothèque de graphes interactive basée sur un navigateur pour Python. Construit au-dessus de plotly.js, plotly.py est une bibliothèque de graphiques déclarative de haut niveau. plotly.js est livré avec plus de 30 types de graphiques, y compris des graphiques scientifiques, des graphiques 3D, des graphiques statistiques, des cartes SVG, des graphiques financiers, etc..

Dans ce tutoriel, vous allez apprendre à utiliser l'outil de visualisation de données Plotly. Vous apprendrez à visualiser des données en Python en utilisant Plotly.

Commencer

Vous utiliserez un framework Python appelé Flask pour créer une application Web Python. Une fois l’application lancée, vous verrez comment utiliser la bibliothèque Plotly pour visualiser des données..

Configuration de l'application Web Flask 

Flask est un micro-cadre permettant de créer des applications Web à l'aide de Python. Il est assez facile de configurer Flask. Installer le flacon avec PIP.

pip installer la fiole

Créez un répertoire appelé PythonPlot. Accédez au répertoire et créez un fichier appelé app.py.

mkdir PythonPlot cd PythonPlot

Ajoutez le code suivant au app.py fichier.

depuis une importation de flacon Flask app = Flask (__ name__) @ app.route ("/") def hello (): return "Welcome to TutsPlus!"

Démarrez le serveur d'applications Web à l'aide du code suivant:

FLASK_APP = exécution du flacon app.py

Pointez votre navigateur sur http: // localhost: 5000 / et vous aurez l'application web en cours d'exécution avec le message de bienvenue.

Essayons maintenant de rendre une page HTML à partir de votre application Web Flask.. 

Créez un dossier appelé des modèles et à l'intérieur du des modèles dossier, créer un fichier appelé index.html. Vous allez rendre les graphiques créés en utilisant complotement dans le index.html fichier.

Ajoutez le code HTML suivant à templates / index.html.

      

Démo graphique

Le graphique sera ici

Importation render_template à l'intérieur de app.py fichier.

depuis flask import Flask, render_template

Ajouter un nouvel itinéraire appelé showLineChart à l'intérieur de app.py fichier. Voici à quoi ça ressemble:

@ app.route ('/ showLineChart') def line (): return render_template ('index.html')

Enregistrez les modifications ci-dessus et redémarrez le serveur. Pointez votre navigateur sur http: // localhost: 5000 / showLineChart, et vous aurez la page rendue dans votre navigateur.

Création d'un graphique en courbes à l'aide de Plotly

Commençons par créer un graphique en courbes à l'aide de Plotly. Importer les bibliothèques liées aux tracés dans le app.py fichier.

importer complot importement plotly.plotly as py import plotly.graph_objs as go

Vous utiliserez NumPy pour générer des données aléatoires à afficher dans le graphique à courbes. Importation numpy dans le app.py fichier.

importer numpy en tant que np

Vous utiliserez le numpy.linspace méthode pour créer des échantillons équidistants calculés sur l'intervalle.

count = 500 xScale = np.linspace (0, 100, count)

Le code ci-dessus crée 500 échantillons uniformément espacés entre 0 et 100 pour l’échelle de l’axe des x..

Vous pouvez utiliser numpy.random.randn créer des échantillons aléatoires pour l'échelle des ordonnées.

yScale = np.random.randn (count)

Créer une trace en utilisant le plotly.graph_objs.scatter méthode.

trace = go.Scatter (x = xScale, y = yScale)

Vous devez convertir la trace au format JSON. Pour cela, vous utiliserez l'encodeur JSON de Plotly plotly.utils.PlotlyJSONEncoder.

data = [trace] graphJSON = json.dumps (data, cls = plotly.utils.PlotlyJSONEncoder)

Une fois que vous avez les données JSON, vous les transmettez au fichier de modèle à restituer..

return render_template ('index.html', graphJSON = graphJSON)

Voici comment app.py fichier regarde:

depuis une fiole importation Flacon, render_template importation json importation complotement importée plotly.plotly as py import plotly.graph_objs as import import numpy as np app = Fiole (__ name__) @ app.route ('/ showLineChart') def line (): count = 500 xScale = np.linspace (0, 100, count) yScale = np.random.randn (count) # Crée une trace trace = go.Scatter (x = xScale, y = yScale) data = [trace] graphJSON = json.dumps (data, cls = plotly.utils.PlotlyJSONEncoder) renvoie render_template ('index1.html', graphJSON = graphJSON) 

Vous devez gérer les données JSON côté client pour rendre les données du graphique. dans le templates / index.html fichier, ajoutez des références aux scripts suivants:

  

Comme on le voit dans le code ci-dessus, vous avez référencé le complotement script, ainsi que jQuery et D3.js, qui sont également nécessaires pour complotement travailler.

Ajoutez le script suivant pour analyser le JSON transmis et restituer le graphique..

var graphs = graphJSON | sûr; Plotly.plot ('chart', graphs, ); 

le sûr filter marque explicitement la chaîne comme étant sans danger, ce qui désactive l'échappement automatique. Une fois le JSON analysé dans le graphique variable, vous l'avez passé au complotement terrain méthode avec l'ID de la div dans lequel rendre le graphique en courbes.

Voici comment index.html fichier regarde:

      

Démo graphique

Enregistrez les modifications ci-dessus et redémarrez le serveur. Pointez votre navigateur sur http: // localhost: 5000 / showLineChart, et vous aurez rendu le graphique en courbes.

Création d'un graphique multiligne à l'aide de Plotly

Avec certaines modifications apportées au graphique en courbes ci-dessus, vous pouvez le convertir en un graphique multiligne. Pour créer un graphique multiligne, vous devez ajouter des échelles d'axe y supplémentaires..

Commençons par créer un nouvel itinéraire pour afficher le graphique multiligne.

@ app.route ('/ showMultiChart') def multiLine ():

Créez une échelle d'axe des x, comme vous l'avez fait lors de la création du graphique en courbes, et ajoutez trois échelles d'axe des y.

count = 500 xScale = np.linspace (0, 100, count) y0_scale = np.random.randn (count) y1_scale = np.random.randn (count) y2_scale = np.random.randn (count)

Créer des traces en utilisant ce qui précède xScale et chacune des échelles y.

trace0 = go.Scatter (x = xScale, y = y0_scale) trace1 = go.Scatter (x = xScale, y = y1_scale) trace2 = go.Scatter (x = xScale, y = y2_échelle)

Convertir les données en JSON en utilisant l'intrigue JSON encodeur, comme vous l'avez fait lors de la création d'un graphique à une seule ligne.

data = [trace0, trace1, trace2] graphJSON = json.dumps (data, cls = plotly.utils.PlotlyJSONEncoder) renvoie render_template ('index.html', graphJSON = graphJSON)

Voici ce que le / showMultiChart le routage ressemble à:

@ app.route ('/ showMultiChart') def multiLine (): count = 500 xScale = np.linspace (0, 100, count) y0_scale = np.random.randn (count) y1_scale = np.random.randn (count) y2_scale = np.random.randn (count) # Créer des traces trace0 = go.Scatter (x = xScale, y = y0_scale) trace1 = go.Scatter (x = xScale, y = y1_scale) trace2 = go.Scatter (x = xScale , y = y2_scale) data = [trace0, trace1, trace2] graphJSON = json.dumps (data, cls = plotly.utils.PlotlyJSONEncoder) renvoie render_template ('index1.html', graphJSON = graphJSON)

Enregistrez les modifications ci-dessus et redémarrez le serveur. Pointez votre navigateur sur http: // localhost: 5000 / showMultiChart, et vous aurez rendu le graphique multiligne.

Envelopper

Dans ce didacticiel, vous avez appris à créer des graphiques linéaires et multilignes en Python à l'aide de la bibliothèque Plotly. Vous avez créé une application Web Python Flask et vu comment créer un graphique à courbes à l'aide d'un exemple de données générées avec la bibliothèque NumPy..

Vous pouvez faire beaucoup plus avec Plotly. Pour des informations détaillées, je vous recommande de lire la documentation officielle.

Le code source de ce tutoriel est disponible dans le tutoriel GitHub repo.

Comment avez-vous appris à créer des graphiques avec Plotly? Faites-nous savoir vos pensées et suggestions dans les commentaires ci-dessous.