Bokeh

Mit Bokeh stellen Sie interaktive Grafiken und Abbildungen bereit, die Sie in einer Webseite einbinden möchten. Ein Webserver wie Apache oder Nginx liefert diese Seite mit der Abbildung dann aus. Dabei kombiniert die Bibliothek die Abbildung mit HTML-Elementen und Javascript, um dem Betrachter die Möglichkeit zu geben, die Darstellung der Grafik im Webbrowser zu ändern. Das betrifft beispielsweise die Auswahl einer Darstellung, den gewählten Datenbereich oder die Farbe der Datenpunkte.

Bokeh wurde dazu konzipiert, mit großen Datenmengen umzugehen. Es verfügt über eine Kompatibilitätsebene zu Matplotlib und lässt sich mit dem iPython-Notebook kombinieren. Darüber hinaus enthält das Paket umfangreiche Beispieldaten, die Sie sofort zum Ausprobieren nutzen können. Aus dieser Quelle stammt auch der Code [13] für das Beispiel aus Abbildung 6, ein interaktives Periodensystem der chemischen Elemente.

Abbildung 6: Interaktives Periodensystem der Elemente.

Das Anklicken eines Quadrats mit der Abkürzung des Elements blendet ein kleines Fenster mit weiteren Details ein – in der Abbildung jenes für das Element Calcium (Ca). Die Zusatzinformationen umfassen den vollständigen Namen des Elements, die Anzahl der Atome, den Typ, das Atomgewicht, den Farbcode gemäß dem in der Chemie gebräuchlichen CPK-Modell [15] sowie die elektronische Konfiguration.

Da der Programmcode für Bokeh-Beispiele recht umfangreich und komplex ausfällt, verzichten wir hier auf den Abdruck. Grundsätzlich entspricht die Vorgehensweise beim Erstellen einer Visualisierung aber jener bei Matplotlib und PyQtGraph.

Pandas

Bei Pandas handelt es sich um eine Bibliothek zur Datenanalyse (Python Data Analysis Library), die unter der BSD-Lizenz steht. Der Name leitet sich von von "panel data" ab und steht für multidimensional strukturierte Daten. Die Entwickler haben Pandas auf Geschwindigkeit optimiert und daher kritische Codeabschnitte in Cython und C implementiert.

Abbildung 7 vergleicht die Häufigkeit ausgewählter Kindernamen, den zugehörigen Code finden Sie in Listing 3. Nach der Definition der benötigten Module (Zeile 1 bis 3) legen Sie die darzustellenden Daten fest. In den Zeilen 5 und 6 definieren Sie dazu zwei Listen, eine mit den Namen und eine weitere mit deren jeweiliger Häufigkeit.

Abbildung 7: Abbildung mit Datenmengen.

Listing 3

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
names = ['Felix','Jessica','Mandy','Norbert','Jan']
births = [915, 155, 77, 578, 973]
babyDataSet = list(zip(names,births))
df = pd.DataFrame(data = babyDataSet, columns=['Namen', 'Anzahl'], index=names)
df.plot(kind='bar')

Über die internen Python-Funktionen list und zip erzeugt Zeile 7 daraus eine zweidimensionale Datenmenge, auf deren Basis Pandas in Zeile 9 eine Darstellung generiert. Dabei weisen Sie dem Parameter data die Datenmenge selbst zu, columns die Ebenen der Datenmenge und index die in Zeile 5 festgelegten Namen.

Damit rendert Pandas die Häufigkeit des Namens entlang der y-Achse und trägt auf der x-Achse als Bezeichner den Namen unter dem jeweiligen Balken ein. Der Aufruf in Zeile 10 erzeugt mittels df.plot() und dem Parameter kind='bar' schließlich das Diagramm.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • 3D-Welten mit Python und Panda3D
    Es gibt zwar einige freie Spiele-Engines, doch nicht jede ist leicht zu programmieren. Panda3D vereinfacht durch die Skriptsprache Python den Einstieg, bietet aber auch Potenzial für Profis.
  • An einem Strang
    IPython Notebook bietet eine nahtlose Integration von Dokument, Programm und Werkzeugen. Damit erleichtert es das gemeinsame Arbeiten erheblich.
  • Durchgeschlängelt
    Mit Features überladene Tabellenkalkulationen gibt es zur Genüge. Dass eine ausgefeilte Spreadsheat-Anwendung auch einsteigertauglich sein kann, demonstriert das auf Python basierende Pyspread.
  • Augenfällig
    Die Plotutils versprechen schnelle Hilfe bei der Visualisierung nummerischer Daten in unterschiedlichsten Ausgabeformaten.
  • Entwicklungshelfer
    Nachdem in den ersten Teilen der Python-Einführung die Sprache beschrieben wurde, geht es im letzten Teil um nützliche Hilfen rund um Python.
Kommentare

Infos zur Publikation

LU 03/2018 NEUE DISTRIBUTIONEN

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Internet abschalten
Karl-Heinz Hauser, 20.02.2018 20:10, 0 Antworten
In der Symbolleiste kann man das Kabelnetzwerk ein und ausschalten. Wie sicher ist die Abschaltu...
JQuery-Script läuft nicht mit Linux-Browsern
Stefan Jahn, 16.02.2018 12:49, 2 Antworten
Hallo zusammen, ...folgender goldener Code (ein jQuery-Script als Ergebnis verschiedener Exper...
XSane-Fotokopie druckt nicht mehr
Wimpy *, 30.01.2018 13:29, 2 Antworten
openSuse 42.3 KDE 5.8.7 Seit einem Software-Update druckt XSane keine Fotokopie mehr aus. Fehler...
TOR-Browser stürzt wegen Wikipedia ab
Wimpy *, 27.01.2018 14:57, 0 Antworten
Tor-Browser 7.5 based on Mozilla Firefox 52.8.0 64-Bit. Bei Aufruf von http: oder https://de.wi...
Wifikarte verhindert Bootvorgang
Maik Kühn, 21.01.2018 22:23, 1 Antworten
iwlwifi-7265D -26 failed to load iwlwifi-7265D -25 failed to load iwlwifi-7265D -24 failed to l...