In kaart brengen Plotly gebruiken in Python

Datavisualisatie is een manier om grote hoeveelheden gegevens te begrijpen. Bepaalde trends en patronen kunnen onopgemerkt blijven in tekstopmaak, dus gegevensvisualisatie maakt het gemakkelijker om te begrijpen wat de gegevens proberen te zeggen door het te visualiseren met verschillende grafieken.

Van de officiële documentatie:

plotly.py is een interactieve, browsergebaseerde grafische bibliotheek voor Python. Op basis van plotly.js is plotly.py een declaratieve diagrambibliotheek op hoog niveau. plotly.js wordt geleverd met meer dan 30 diagramtypen, waaronder wetenschappelijke diagrammen, 3D-grafieken, statistische grafieken, SVG-kaarten, financiële grafieken en meer.

In deze zelfstudie leert u meer over het hulpmiddel Plotly data visualization. U leert met behulp van Plotly hoe u gegevens in Python kunt visualiseren.

Ermee beginnen

Je zult een Python-raamwerk genaamd Flask gebruiken om een ​​Python-webapp te maken. Nadat de toepassing is gestart, ziet u hoe u de Plotly-bibliotheek gebruikt om gegevens te visualiseren.

De Flask Web App instellen 

Flask is een micro-framework voor het maken van webapps met Python. Het is vrij eenvoudig om Flask in te stellen. Installeer de kolf met behulp van PIP.

pip-installatiekolf

Maak een map met de naam PythonPlot. Navigeer naar de map en maak een bestand met de naam app.py.

mkdir PythonPlot cd PythonPlot

Voeg de volgende code toe aan de app.py het dossier.

uit de kolf import Flask app = Flask (__ name__) @ app.route ("/") def hello (): terug "Welkom bij TutsPlus!"

Start de webtoepassingsserver met behulp van de volgende code:

FLASK_APP = app.py-kolf wordt uitgevoerd

Richt uw browser op http: // localhost: 5000 / en u laat de webtoepassing werken met het welkomstbericht.

Laten we nu proberen een HTML-pagina van uw Flask-webtoepassing weer te geven. 

Maak een map met de naam templates en, binnen de templates map, maak een bestand aan met de naam index.html. U geeft de grafieken weer die zijn gemaakt met plotly in de index.html het dossier.

Voeg de volgende HTML-code toe aan templates / index.html.

      

Plotly Chart Demo

Kaart zal hier zijn

Importeren render_template binnen in de app.py het dossier.

uit de kolf importfles, render_template

Voeg een nieuwe route toe met de naam showLineChart binnen in de app.py het dossier. Hier is hoe het eruit ziet:

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

Sla de bovenstaande wijzigingen op en start de server opnieuw. Richt uw browser op http: // localhost: 5000 / showLineChart, en je zult de pagina in je browser laten weergeven.

Een lijndiagram maken met behulp van Plotly

Laten we beginnen met het maken van een lijndiagram met Plotly. Importeer de plotly-gerelateerde bibliotheken in de app.py het dossier.

importeer plotterlijk perceelplot.plotly als py import plotly.graph_objs as go

U zult NumPy gebruiken om willekeurige gegevens te genereren voor weergave binnen het lijndiagram. Importeren numpy in de app.py het dossier.

importeer numpy als np

Je zult de gebruiken numpy.linspace methode om gelijkmatig gespatieerde monsters te maken, berekend over het interval.

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

De bovenstaande code creëert 500 gelijkmatig gespatieerde monsters tussen 0 en 100 voor de schaal van de x-as.

Je kunt gebruiken numpy.random.randn om willekeurige steekproeven voor de schaal van de y-as te maken.

yScale = np.random.randn (tel)

Maak een trace met behulp van de plotly.graph_objs.scatter methode.

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

U moet de trace converteren naar JSON-indeling. Daarvoor maakt u gebruik van de plottende JSON-encoder plotly.utils.PlotlyJSONEncoder.

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

Zodra u de JSON-gegevens hebt, geeft u deze door aan het sjabloonbestand dat moet worden weergegeven.

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

Hier is hoe het app.py bestand ziet er:

uit kolf importeren Kolf, render_template importeren json importeren plotten importeren plotly.plotly als py importeren plotly.graph_objs als gaan numpy importeren als np app = Kolf (__ name__) @ app.route ('/ showLineChart') def line (): count = 500 xScale = np.linspace (0, 100, count) yScale = np.random.randn (count) # Maak een traceertrace = go.Scatter (x = xScale, y = yScale) data = [trace] graphJSON = json.dumps (data, cls = plotly.utils.PlotlyJSONEncoder) return render_template ('index1.html', graphJSON = graphJSON) 

U moet de JSON-gegevens aan de clientzijde verwerken om de diagramgegevens weer te geven. In de templates / index.html bestand, voeg verwijzingen toe naar de volgende scripts:

  

Zoals te zien is in de bovenstaande code, hebt u verwezen naar de plotly script, evenals jQuery en d3.js, die ook verplicht zijn voor plotly werken.

Voeg het volgende script toe om de doorgestuurde JSON te analyseren en de grafiek weer te geven.

var grafieken = graphJSON | veilig; Plotly.plot ( 'chart, grafieken, ); 

De veilig filter markeert de string expliciet als veilig en schakelt automatisch uit. Nadat de JSON is geparseerd in de diagram variabele, je hebt het doorgegeven aan de plotly plot methode samen met de ID van de div waarin het lijndiagram wordt weergegeven.

Hier is hoe het index.html bestand ziet er:

      

Plotly Chart Demo

Sla de bovenstaande wijzigingen op en start de server opnieuw. Richt uw browser op http: // localhost: 5000 / showLineChart, en u laat het lijndiagram weergeven.

Een meerregelige grafiek maken met behulp van een overzichtelijk overzicht

Met enkele wijzigingen aan het bovenstaande lijndiagram kunt u het omzetten naar een diagram met meerdere regels. Als u een diagram met meerdere regels wilt maken, moet u extra schalen van de y-as toevoegen.

Laten we beginnen met het maken van een nieuwe route voor het weergeven van de meerlijnige grafiek.

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

Maak een x-as schaal, zoals u deed toen u het lijndiagram maakte, en voeg drie schalen van de y-as toe.

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

Maak sporen met behulp van het bovenstaande xScale en elk van de y-schalen.

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

Converteer de gegevens naar JSON met behulp van de plotly json encoder, zoals u deed bij het maken van een lijndiagram.

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

Hier is wat de / showMultiChart routing ziet eruit als:

@ app.route ('/ showMultiChart') def multiLine (): count = 500 xScale = np.linspace (0, 100, count) y0_scale = np.random.randn (aantal) y1_scale = np.random.randn (aantal) y2_scale = np.random.randn (count) # Maak 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) return render_template ('index1.html', graphJSON = graphJSON)

Sla de bovenstaande wijzigingen op en start de server opnieuw. Richt uw browser op http: // localhost: 5000 / showMultiChart, en u zult het meerregelige diagram laten weergeven.

Inpakken

In deze zelfstudie hebt u geleerd hoe u lijn- en meerregelige diagrammen in Python kunt maken met behulp van de Plotly-bibliotheek. U hebt een web-app voor Python Flask gemaakt en hebt gezien hoe u een lijndiagram kunt maken met voorbeeldgegevens die zijn gegenereerd met de NumPy-bibliotheek.

U kunt veel meer doen met Plotly. Voor gedetailleerde informatie raad ik u aan de officiële documentatie te lezen.

Broncode van deze tutorial is beschikbaar in de tutorial GitHub repo.

Hoe was je ervaring om grafieken te leren maken met Plotly? Laat ons uw mening en suggesties weten in de opmerkingen hieronder.