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.
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.
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.
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.
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.
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.