image image


nteract mit Python und der Matplotlib

Natürlich funktioniert die Jupyter-Notebook-Alternative nteract nicht nur mit Julia, sondern auch mit Python. Denn dafür ist sie ursprünglich entwickelt worden. Um die Funktionalität zu testen, habe ich ein paar Plots zeichnen lassen und das Notebook »Übungen mit der Matplotlib« genannt:

image

Das Notebook sieht in etwa so aus:

Übungen mit der Matplotlib

Legenden

Legenden in Matplotlib-Plots kann man mit dem Positionsargument loc (zum Beispiel "upper right" positionieren. In vielen Fällen weiß man jedoch nicht, wie das Ergebnis aussehen wird, bevor man es geplottet hat und die Legende verdeckt unter Umständen einen (wichtigen) Teil des Plots. Daher kann man alternativ das Positionsargument best verwenden. Matplotlib versucht dann, automatisch die bestmögliche Position für die Legende zu finden:

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 25, 1000)
f1 = np.sin(0.5*x)
f2 = 3*np.cos(0.8*x)
plt.plot(x, f1, label = "$sin(0.5*x)$")
plt.plot(x, f2, label = "$3sin(x)$")
plt.legend(loc = "best")
plt.show()

image

In den folgenden beiden Beispielen kann man sehen, daß loc = "best" in der Regel sehr gut funktioniert:

x = np.linspace(-2*np.pi, 2*np.pi, 70, endpoint = True)
f1 = np.sin(0.5*x)
f2 = -3*np.cos(0.8*x)
plt.xticks([-6.28, -3.14, 0, 3.14, 6.28],
           [r"$-2\pi$", r"$-\pi$", r"$0$", r"$+\pi$", r"$+2\pi$"])
plt.yticks([-3, -1, 0, 1, 3])
plt.plot(x, f1, label = "$sin(0.5x)$")
plt.plot(x, f2, label = "$-3cos(0.8x)$")
plt.legend(loc = "best")
plt.show()

image

x = np.linspace(-2*np.pi, 2*np.pi, 70, endpoint = True)
f1 = np.sin(0.5*x)
f2 = 3*np.cos(0.8*x)
plt.xticks([-6.28, -3.14, 0, 3.14, 6.28],
           [r"$-2\pi$", r"$-\pi$", r"$0$", r"$+\pi$", r"$+2\pi$"])
plt.yticks([-3, -1, 0, 1, 3])
plt.plot(x, f1, label = "$sin(0.5x)$")
plt.plot(x, f2, label = "$3cos(0.8x)$")
plt.legend(loc = "best")
plt.show()

image

Die Beispiele habe ich dem wunderbaren Buch »Numerisches Python – Arbeiten mit NumPy, Matplotlib und Pandas« von Bernd Klein entnommen (Seiten 191ff), das eine wirklich guten und präzise Einführung in diese drei Pakete bietet.

nteract hat sich auch hier bewährt. Das Einfügen von Markdown-Zellen ist einfach und intuitiv gelöst und mein Anaconda-Python wurde ohne Probleme und ohne mein Eingreifen erkannt. Der Menüpunkt Publish > Gist publiziert das komplette Notebook auf nbviewer.jupyter.org, so daß Ihr es auch dort betrachten könnt (eine Anmeldung mit Eurem GitHub-Account ist erforderlich). Gleichzeitig wird es auch nach GitHub Gist exportiert, so daß Ihr es auch auf Euren Webseiten einbinden könnt.1 Auch der Export als PDF ergibt ein aufgeräumtes und anschaubares Dokument.

Mein einziger Kritikpunkt ist, daß die Plots doch recht klein geraten sind – für eine Publikation unter Umständen zu klein. Ich habe keine Stelle gefunden, wo man die Größe der Inline-Plots ändern kann, man muß hier also vermutlich mit savefig() arbeiten.

Das Notebook und auch das PDF liegen in meinem GitHub-Repositorium zur Ansicht. Ich werde mit nteract sicher noch mehr anstellen, irgendwie liegt mir das Teil – trotz seines doofen Namens. Still digging!

  1. Ich habe es hier im Blog Kritzelheft nicht eingebunden, weil es irgendwie meinem Prinzip der statischen Seiten widerspricht. 


(Kommentieren) 

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter Rentner, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung

Diese Spalte wurde absichtlich leergelassen!


Werbung


image  image  image
image  image  image


image