Einführung
Vor kurzem, Ich habe ein Video von der SciPy-Konferenz gelesen 2015, „Erstellen von Python-Datenanwendungen mit Blaze und Bokeh“, Kürzlich in Austin . abgehalten, Texas, EE. UU. Ich konnte nicht aufhören, über die Macht nachzudenken, die diese beiden Bibliotheken den Datenwissenschaftlern bieten, die Python auf der ganzen Welt verwenden.. In diesem Artikel, Ich werde Sie in die Welt der Möglichkeiten der Datenvisualisierung mit Bokeh einführen und warum ich denke, dass dies eine Bibliothek ist, die alle Data Scientists lernen sollten / benutzen.
Quelle: bokeh.pydata.org
Was ist Bokeh?
Bokeh ist eine Python-Bibliothek für interaktive Visualisierung, die auf Webbrowser zum Rendern abzielt. Dies ist der Hauptunterschied zwischen Bokeh und anderen Anzeigebibliotheken. Sehen Sie sich den Schnappschuss unten an, Hier wird der Prozessablauf erläutert, wie Bokeh dabei hilft, Daten in einem Webbrowser zu präsentieren.
Quelle: Kontinuumsanalyse
Wie du siehst, Bokeh hat mehrere Sprachlinks (Python, R, lua und Julia). Diese Verknüpfungen erzeugen eine JSONJSON, o JavaScript-Objekt-Notation, Es handelt sich um ein leichtgewichtiges Datenaustauschformat, das für Menschen leicht zu lesen und zu schreiben ist, und für Maschinen einfach zu analysieren und zu generieren. Es wird häufig in Webanwendungen verwendet, um Informationen zwischen einem Server und einem Client zu senden und zu empfangen. Seine Struktur basiert auf Schlüssel-Wert-Paaren, Dadurch ist es vielseitig einsetzbar und in der Softwareentwicklung weit verbreitet.., was als Input für . dient BokehJS (eine Javascript-Bibliothek), die wiederum Daten modernen Webbrowsern präsentiert.
Bokeh kann ein elegantes und interaktives Display wie D3.js mit leistungsstarker Interaktivität bei sehr großen oder Streaming-Datensätzen erzeugen. Bokeh kann jedem helfen, der schnell und einfach Grafiken erstellen möchte, interaktive Daten-Dashboards und Apps.
Was bietet Bokeh einem Data Scientist wie mir?
Ich begann meine Reise in die Datenwissenschaft als BI-Profi und arbeitete mich dann durch Predictive Modeling, Datenwissenschaft und maschinelles Lernen. Ich habe mich hauptsächlich auf Tools wie QlikView und Tableau für die Datenvisualisierung und SAS und Python für Predictive Analytics und Data Science verlassen.. Ich hatte fast keine Erfahrung mit JavaScript.
Dann, für alle meine Daten oder Ideenprodukte, Ich musste die Arbeit auslagern oder meine Ideen über Wireframes präsentieren, die nicht ideal für den Bau von schnellen Prototypen sind. Jetzt, Bokeh-Con, Kann ich weiter im Python-Ökosystem arbeiten?, aber trotzdem kann ich diese Prototypen schnell erstellen.
Bokeh-Vorteile:
- Mit Bokeh können Sie schnell und mit einfachen Befehlen komplexe statistische Diagramme erstellen
- Bokeh bietet Ihnen Ausgabe in verschiedenen Medien wie HTML, Notebook und Server
- Wir können Bokeh-Displays auch in Flask und Django-App einbetten
- Bokeh kann die in anderen Bibliotheken wie Matplotlib geschriebene Anzeige transformieren, Seegeboren, ggplot
- Bokeh ist flexibel, um Interaktionen anzuwenden, Layouts und verschiedene Anzeigestiloptionen.
Herausforderungen mit Bokeh:
- Wie bei jeder kommenden Open-Source-Bibliothek, Bokeh befindet sich in einer großen Entwicklung. Deswegen, Der Code, den Sie heute schreiben, ist in Zukunft möglicherweise nicht vollständig wiederverwendbar.
- Hat relativ weniger Anzeigeoptionen, im Vergleich zu D3.js. Deswegen, Es ist unwahrscheinlich, dass er D3.js in naher Zukunft um seine Krone herausfordern wird.
Angesichts der Vorteile und Herausforderungen, heute ist es ideal, schnell Prototypen zu entwickeln. Aber trotzdem, wenn Sie etwas für die Produktionsumgebung erstellen möchten, D3.js könnte Ihre beste Wahl sein.
Bokeh installieren, folge den Anweisungen hier.
Visualisierung mit Bokeh
Bokeh bietet leistungsstarke und flexible Funktionen, die Einfachheit und hoch entwickelte Anpassungsmöglichkeiten bieten. Stellen Sie dem Benutzer mehrere Anzeigeschnittstellen zur Verfügung, wie unten gezeigt:
- Grafik: ein hohes Level Schnittstelle, die verwendet wird, um komplexe statistische Diagramme so schnell und einfach zu erstellen.
- Grafisch: ein Mittelstufe Benutzeroberfläche, die sich auf die visuelle Glyphenkomposition konzentriert.
- Modelle: ein niedriges Niveau Schnittstelle, die Anwendungsentwicklern maximale Flexibilität bietet.
In diesem Artikel, wir sehen nur die Grafiken und das Layout der ersten beiden Schnittstellen. Wir werden die Modelle und andere erweiterte Funktionen dieser Bibliothek im nächsten Beitrag besprechen..
Grafik
Wie bereits erwähnt, ist eine High-Level-Schnittstelle zur Darstellung von Informationen in Form einer Standardanzeige. Diese Formulare beinhalten Boxplot, BalkengrafikDas Balkendiagramm ist eine visuelle Darstellung von Daten, die rechteckige Balken verwendet, um Vergleiche zwischen verschiedenen Kategorien anzuzeigen. Jeder Balken stellt einen Wert dar, und seine Länge ist proportional zu ihm. Diese Art von Diagramm ist nützlich, um Trends zu visualisieren und zu analysieren, Erleichterung der Interpretation quantitativer Informationen. Es ist in verschiedenen Disziplinen weit verbreitet, wie z.B. Statistiken, Marketing und Forschung, Aufgrund seiner Einfachheit und Effektivität...., Flächendiagramm, Heatmapein "Heatmap" ist eine grafische Darstellung, die Farben verwendet, um die Dichte von Daten in einem bestimmten Bereich anzuzeigen. Häufig in der Datenanalyse verwendet, Marketing und Verhaltensstudien, Diese Art der Visualisierung ermöglicht es Ihnen, Muster und Trends schnell zu erkennen. Durch chromatische Variationen, Heatmaps erleichtern die Interpretation großer Informationsmengen, dabei helfen, fundierte Entscheidungen zu treffen...., Donut-Diagramm und viele andere. Sie können diese Diagramme erstellen, indem Sie einfach Datenrahmen übergeben, Matrizen und Wörterbücher.
Schauen wir uns die gängige Methode zum Erstellen eines Diagramms an:
- Bibliothek und Funktionen importieren / Methoden
- Bereiten Sie die Daten vor
- Stellen Sie den Ausgabemodus ein (tragbar, Webbrowser oder Server)
- Grafik mit Stiloption erstellen (Falls erforderlich)
- Schau dir die Grafik an
Um diese Schritte besser zu verstehen, Lassen Sie mich diese Schritte anhand des folgenden Beispiels demonstrieren:
Grafikbeispiel 1: Erstellen Sie ein Balkendiagramm und zeigen Sie es im Webbrowser mit Bokeh an
Wir werden die oben aufgeführten Schritte befolgen, um ein Diagramm zu erstellen:
#Bibliothek importieren aus bokeh.charts importieren Bar, Ausgabedatei, #use output_notebook anzeigen, um es im Notebook zu visualisieren
# Daten vorbereiten (Dummy-Daten)
Daten = {"Ja": [1, 2, 3, 4, 5]}
# Ausgabe in Line.HTML
Ausgabedatei("Zeilen.html", Titel="Beispiel für ein Liniendiagramm") #put output_notebook() für Notebook
# Erstellen Sie einen neuen Zeilenchat mit einem Titel und Achsenbeschriftungen p = Bar(Daten, Titel="Beispiel für ein Liniendiagramm", xlabel="x", ylabel="Werte", Breite = 400, Höhe = 400)
# zeige die Ergebnisse zeigen(P)
In der Grafik oben, Sie können die Werkzeuge oben sehen (Zoomen, Größe ändern, neustarten, Zoom de rueda) und diese Tools ermöglichen es Ihnen, mit dem Diagramm zu interagieren. Sie können auch die mehreren Diagrammoptionen sehen (Legende, xlabel, ylabel, xgrid, Breite, hoch und viele andere) und verschiedene Grafikbeispiele hier.
Diagrammbeispiel 2: Vergleichen Sie die Verteilung von Kelchblattlänge und Kronblattlänge aus dem IRIS-Datensatz mithilfe des Boxplots im Notebook
So erstellen Sie diese Visualisierung, erste, Ich werde den Iris-Datensatz mit der sklearn-Bibliothek importieren. Später, Befolgen Sie die oben beschriebenen Schritte, um das Diagramm im ipython-Notebook anzuzeigen.
#IRIS-Datensatz aus sklearn.datasets import load_iris Pandas als pd importieren iris = load_iris() df=pd.DataFrame(iris.daten) df.columns=['petal_width','petal_length',''sepal_width',''sepal_length']
#Bibliothek importieren aus bokeh.charts importieren BoxPlot, output_notebook, zeigen
Daten=df[['petal_length',''sepal_length']]
# Ausgabe auf Notebook output_notebook()
# Erstellen Sie einen neuen Zeilenchat mit einem Titel und Achsenbeschriftungen p = BoxPlot(Daten, Breite = 400, Höhe = 400)
# zeige die Ergebnisse zeigen(P)
Diagrammbeispiel 3: Erstellen Sie ein Liniendiagramm auf dem Bokeh-Server
Vor dem Plotten der Visualisierung auf dem Bokeh-Server, muss es laufen lassen.
Wenn Sie ein Conda-Paket verwenden, Sie können den Befehl ausführen verwenden Bokeh-Server aus einem beliebigen Verzeichnis mit dem Befehl. Der Rest, python ./bokeh-server Der Befehl sollte im Allgemeinen funktionieren. Für weitere Details dazu, Überprüfen Sie diesen Link „Implementierung des Bokeh-Servers“.
Das Plotten der Anzeige auf dem Bokeh-Server bietet mehrere Vorteile:
- Pakete können für ein breiteres Publikum veröffentlicht werden
- Visualisieren Sie einen großen Datensatz interaktiv
- Datenübertragung zur automatischen Aktualisierung der Grafiken
- Dashboard- und App-Erstellung
So starten Sie das Plotten auf dem Bokeh-Server, Ich habe den Befehl ausgeführt Bokeh-Server um es zu initialisieren, gefolgt von den Befehlen für die Anzeige.

aus bokeh.plotting Importfigur, Ausgabeserver, zeigen
Ausgabeserver("Leitung")
p = Zahl(plot_width=400, plot_height=400)
# einen Linienrenderer hinzufügen
p.line([5, 2, 3, 4, 5], [5, 7, 2, 4, 5], line_width=2)
zeigen(P)
Grafisch
Spur ist a Mittelstufe Benutzeroberfläche, die sich auf die visuelle Glyphenkomposition konzentriert. Hier, Erstellen Sie eine Visualisierung, indem Sie mehrere kombinieren visuelle Elemente (Punkt, Kreise, Linie, Patch und viele andere) Ja Instrumente (Scroll-Werkzeug, Zoomen, speichern, zurücksetzen und andere).
Bokeh-Grafiken erstellt mit dem bokeh.plotten Die Benutzeroberfläche wird mit einem Standardsatz an Werkzeugen und visuellen Stilen geliefert. Verfolgen, folgen Sie den unteren Schritten:
- Bibliothek importieren, Methoden oder Funktionen
- Ausgabemodus auswählen (tragbar, Web-Navigator, Server)
- Aktivieren Sie eine Abbildung"Abbildung" ist ein Begriff, der in verschiedenen Zusammenhängen verwendet wird, Von der Kunst zur Anatomie. Im künstlerischen Bereich, bezieht sich auf die Darstellung menschlicher oder tierischer Formen in Skulpturen und Gemälden. In der Anatomie, bezeichnet die Form und Struktur des Körpers. Was ist mehr, in der Mathematik, "Abbildung" Es hängt mit geometrischen Formen zusammen. Seine Vielseitigkeit macht es zu einem grundlegenden Konzept in mehreren Disziplinen.... (ähnlich einer Matplotlib)
- Führen Sie nachfolgende Plotvorgänge durch, wirkt sich auf die generierte Figur aus.
- Visualisiere es
Um diese Schritte besser zu verstehen, Lassen Sie mich diese Schritte anhand der folgenden Beispiele demonstrieren:
Beispielgrafik-1: Erstellen Sie eine quadratische Punktmarkierung auf dem XY-Rahmen des Notebooks
von bokeh.plotten importieren Abbildung, output_notebook, zeigen # Ausgabe auf Notebook output_notebook() P = Abbildung(plot_width=400, Grundstückshöhe=400) # Quadrat mit einer Größe hinzufügen, Farbe, und alpha P.Quadrat([2, 5, 6, 4], [2, 3, 2, 1, 2], Größe=20, Farbe="Marine") # zeige die Ergebnisse zeigen(P)
Auf die gleiche Weise, kann verschiedene andere Diagramme wie Linie erstellen, Keile und Bogen, Ovale, Bilder, Patches und viele andere, Sieh dir das an Verknüpfung um verschiedene Beispiele zu sehen.
Plotbeispiel-2: Kombinieren Sie zwei Visuals in einem Diagramm
aus bokeh.plotting Importfigur, output_notebook, zeigen
# Ausgabe auf Notebook output_notebook() p = Zahl(plot_width=400, plot_height=400) # Quadrat mit einer Größe hinzufügen, Farbe, und alpha p.quadrat([2, 5, 6, 4], [2, 3, 2, 1, 2], Größe = 20, Farbe="Marine") p.line([1, 2, 3, 4, 5], [1, 2, 2, 4, 5], line_width=2) #ein Liniendiagramm zu einer bestehenden Figur hinzugefügt # zeige die Ergebnisse zeigen(P)

Plotbeispiel-3: Fügen Sie dem obigen Diagramm ein Gleitkomma-Werkzeug und Achsenbeschriftungen hinzu
aus bokeh.plotting Importfigur, output_notebook, zeigen von bokeh.models importieren HoverTool, BoxSelectTool #Zum Aktivieren von Tools
# Ausgabe auf Notebook output_notebook()
#Werkzeuge hinzufügen WERKZEUGE = [BoxSelectTool(), HoverTool()]
p = Zahl(plot_width=400, plot_height=400, Werkzeuge=WERKZEUGE)
# füge ein Quadrat mit einer Größe hinzu, Farbe, und alpha p.quadrat([2, 5, 6, 4], [2, 3, 2, 1, 2], Größe = 20, Farbe="Marine", Alpha=0,5)
#Visuelle Elemente p.xaxis.axis_label = "X-Achse" p.yaxis.axis_label = "Y-Achse"
# zeige die Ergebnisse zeigen(P)

Weitere Informationen zu visuellen Attributen und Tools, Überprüfen Sie diese Links:
Beispielgrafik-4: Indien-Kartendiagramm mit Breiten- und Längengraddaten für Grenzen
Notiz: Ich habe Polygondaten für Breitengrade und Längengrade für indische Grenzen im CSV-Format. Ich werde es verwenden, um zu verfolgen.
Hier, wir gehen mit patchen, Sehen wir uns die Befehle unten an:
#Bibliotheken importieren
Pandas als pd importieren aus bokeh.plotting Importfigur, zeigen, output_notebook
#Breiten- und Längengrad-Koordinaten importieren
Indien=pd.read_csv('E:/India.csv')
von Indien['ID']
Indien.index=['IN0','IN1','IN2','IN3','IN4','IN5']
#Konvertieren Sie String-Werte in Float, da die Koordinaten im Datenrahmen String sind
für j im Bereich(0,len(Indien)):
a = Indien['Lats'][J]
Indien['Lats'][J] = [schweben(ich) für ich in a[1:len(ein)-1].Teilt(",")]
für j im Bereich(0,len(Indien)):
a = Indien['Lons'][J]
Indien['Lons'][J] = [schweben(ich) für ich in a[1:len(ein)-1].Teilt(",")]
# Ausgabeoption output_notebook()
# Erstelle dein Grundstück p = Zahl(plot_height=400, plot_width=400, Toolbar_location="rechts",x_axis_type=Keine, y_axis_type=Keine) p.patches(xs=Indien['Lons'], ys=Indien['Lats'], fill_color="Weiß",line_color="Schwarz", line_width=0.5)
#Visualisieren Sie Ihr Diagramm zeigen(P)

Abschließende Anmerkungen
In diesem Artikel, wir analysieren die Erstellung von Visualisierungen mit Bokeh und Methoden um diese in Notebooks darzustellen, html und Bokeh-Server. Wir haben auch die Methoden zum Erstellen einer benutzerdefinierten Visualisierung mit Plotten besprochen, Hier können Sie mehrere Visuals kombinieren, um Informationen darzustellen.
In meinem nächsten Beitrag zu Bokeh, Ich werde über weitere interaktive Anzeigemodelle und Funktionen sprechen. Zum Beispiel, Ich habe koordinierte Grenzen für jedes Land auf der ganzen Welt. Jetzt, Ich möchte eine Visualisierung erstellen, um die Karte jedes Landes in einem Zyklus darzustellen (Schleife). Beginnen Sie mit dem Zeichnen mit einer Länderkarte und warten Sie 3 Sekunden und Iterationen für alle Länder. Hört sich interessant an! Es ist nicht so?
Fanden Sie diesen Artikel nützlich?? Teilen Sie uns Ihre Meinung zu diesem Artikel im Kommentarbereich unten mit..
Wenn Ihnen das, was Sie gerade gelesen haben, gefällt und Sie weiter über Analytics lernen möchten, abonnieren Sie unsere E-Mails, Folge uns auf Twitter oder wie bei uns Seite auf Facebook.
Verwandt
zusammenhängende Posts:
- Vollständiger Pfad zum Erstellen einer interaktiven Visualisierung mit D3.js
- Tadaa SLR, oder wie man Bokeh-Fotos macht (Unscharfer Hintergrund) wie auf dem iPhone 7 Plus / 8 Plus auf älteren Geräten
- Datenvisualisierung in R | Leitfaden zur Datenvisualisierung in R
- Tools zur Datenvisualisierung | Top-Tools zur Datenvisualisierung, die Sie beherrschen sollten 2021







