Creazione di grafici con Plotly in Python

La visualizzazione dei dati è un modo per comprendere grandi quantità di dati. Alcune tendenze e modelli potrebbero passare inosservati in formato testo, quindi la visualizzazione dei dati facilita la comprensione di ciò che i dati stanno cercando di dire visualizzandoli utilizzando grafici diversi.

Dalla documentazione ufficiale:

plotly.py è una libreria grafica interattiva basata su browser per Python. Basato su plotly.js, plotly.py è una libreria di diagrammi dichiarativi di alto livello. plotly.js viene fornito con oltre 30 tipi di grafici, tra cui grafici scientifici, grafici 3D, grafici statistici, mappe SVG, grafici finanziari e altro.

In questo tutorial imparerai a conoscere lo strumento di visualizzazione dei dati di Plotly. Imparerai come visualizzare i dati in Python usando Plotly.

Iniziare

Utilizzerai un framework Python chiamato Flask per creare un'applicazione web Python. Una volta avviata l'applicazione, vedrai come utilizzare la libreria Plotly per visualizzare i dati.

Impostazione dell'applicazione Web Flask 

Flask è un micro-framework per la creazione di applicazioni Web che utilizzano Python. È abbastanza facile installare Flask. Installa Flask usando PIP.

pip installare pallone

Crea una directory chiamata PythonPlot. Passare alla directory e creare un file chiamato app.py.

mkdir PythonPlot cd PythonPlot

Aggiungi il seguente codice al app.py file.

da flask import Flask app = Flask (__ name__) @ app.route ("/") def hello (): return "Benvenuto in TutsPlus!"

Avviare il server di applicazioni Web utilizzando il seguente codice:

FLASK_APP = esecuzione del pallone app.py

Indirizza il tuo browser a http: // localhost: 5000 / e avrai l'applicazione web in esecuzione con il messaggio di benvenuto.

Ora proviamo a rendere una pagina HTML dall'applicazione web Flask. 

Crea una cartella chiamata modelli e, all'interno del modelli cartella, creare un file chiamato index.html. Renderete i grafici creati usando plotly nel index.html file.

Aggiungi il seguente codice HTML a templates / index.html.

      

Plotly Chart Demo

Il grafico sarà qui

Importare render_template dentro il app.py file.

dalla boccetta import Flask, render_template

Aggiungi una nuova rotta chiamata showLineChart dentro il app.py file. Ecco come appare:

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

Salvare le modifiche precedenti e riavviare il server. Indirizza il tuo browser a http: // localhost: 5000 / showLineChart, e avrai la pagina visualizzata nel tuo browser.

Creazione di un grafico a linee usando Plotly

Iniziamo con la creazione di un grafico a linee usando Plotly. Importa le librerie relative alla trama nel app.py file.

importare graficamente importare plotly.plotly come py importare plotly.graph_objs come andare

Userai NumPy per generare dati casuali per la visualizzazione all'interno del grafico a linee. Importare numpy nel app.py file.

importa numpy come np

Userai il numpy.linspace metodo per creare campioni equidistanti calcolati nell'intervallo.

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

Il codice sopra riportato crea 500 campioni equidistanti tra 0 e 100 per la scala dell'asse x.

Puoi usare numpy.random.randn creare campioni casuali per la scala dell'asse y.

yScale = np.random.randn (contare)

Crea una traccia usando il plotly.graph_objs.scatter metodo.

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

Devi convertire la traccia in formato JSON. Per questo, farai uso del codificatore JSON grafico plotly.utils.PlotlyJSONEncoder.

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

Una volta ottenuti i dati JSON, passerai al file modello da rendere.

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

Ecco come app.py aspetto del file:

from flask import Flask, render_template import json import importare graficamente plotly.plotly come py import plotly.graph_objs as go import numpy come np app = Flask (__ name__) @ app.route ('/ showLineChart') def line (): count = 500 xScale = np.linspace (0, 100, count) yScale = np.random.randn (count) # Crea traccia trace = go.Scatter (x = xScale, y = yScale) data = [trace] graphJSON = json.dumps (data, cls = plotly.utils.PlotlyJSONEncoder) restituisce render_template ('index1.html', graphJSON = graphJSON) 

È necessario gestire i dati JSON sul lato client per eseguire il rendering dei dati del grafico. Nel templates / index.html file, aggiungere riferimenti ai seguenti script:

  

Come visto nel codice precedente, hai fatto riferimento a plotly script, così come jQuery e d3.js, che sono anche necessari per plotly lavorare.

Aggiungi il seguente script per analizzare il JSON passato e rendere il grafico.

var graph = graphJSON | sicuro; Plotly.plot ( 'grafico', grafici, ); 

Il sicuro filtro contrassegna in modo esplicito la stringa come sicura, quindi disabilitando l'autoesclusione. Una volta che il JSON è stato analizzato nel grafico variabile, lo hai passato al plotly tracciare metodo insieme all'ID del div in cui rendere il grafico a linee.

Ecco come index.html aspetto del file:

      

Plotly Chart Demo

Salvare le modifiche precedenti e riavviare il server. Indirizza il tuo browser a http: // localhost: 5000 / showLineChart, e avrai il grafico a linee renderizzato.

Creazione di un grafico a più linee mediante Plotly

Con alcune modifiche al grafico a linee sopra, è possibile convertirlo in un grafico a più linee. Per creare un grafico a più linee, è necessario aggiungere scale dell'asse y aggiuntive.

Iniziamo creando un nuovo percorso per visualizzare il grafico a più linee.

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

Crea una scala dell'asse x, come hai fatto quando crei il grafico a linee e aggiungi tre scale dell'asse 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)

Crea tracce usando il precedente xScale e ciascuna delle scale y.

trace0 = go.Scatter (x = xScale, y = y0_scale) trace1 = go.Scatter (x = xScale, y = y1_scale) trace2 = go.Scatter (x = xScale, y = y2_scale)

Converti i dati in JSON usando la trama jSON encoder, come hai fatto durante la creazione di un grafico a linee singole.

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

Ecco cosa è / showMultiChart il routing assomiglia a:

@ 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) # Crea tracce 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) restituisce render_template ('index1.html', graphJSON = graphJSON)

Salvare le modifiche precedenti e riavviare il server. Indirizza il tuo browser a http: // localhost: 5000 / showMultiChart, e avrai il grafico a più linee renderizzato.

Avvolgendolo

In questo tutorial, hai imparato come creare grafici a linee e multilinea in Python usando la libreria Plotly. Hai creato un'app Web Python Flask e hai visto come creare un grafico a linee utilizzando i dati di esempio generati con la libreria NumPy.

Puoi fare molto di più usando Plotly. Per informazioni dettagliate, consiglierei di leggere la documentazione ufficiale.

Il codice sorgente di questo tutorial è disponibile nel tutorial repo GitHub.

In che modo la tua esperienza ha imparato a creare grafici usando Plotly? Fateci sapere i vostri pensieri e suggerimenti nei commenti qui sotto.