Ich experimentiere gerade ein wenig mit Bokeh herum, dem Plotting-Interface für Python (und IPython), das HTML-Output generiert. Ich habe mich dabei strikt an die Vorgaben gehalten, doch entgegen dem Tutorial des Herstellers schaffe ich es nicht, zwei Ausgaben in einem Plot unterzubringen. Es geht um dieses simple Skript:
from bokeh.plotting import *
from numpy import *
x = linspace(-2*pi, 2*pi, 100)
y = cos(x)
output_file("cos.html")
line(x, y, color="red")
scatter(x, y, marker="square", color="blue")
show()
Sieht so einfach aus und das oben erwähnte Tutorial zeigt auch einen Screenshot, in dem ein Plot beide Ausgaben überlappend zeigt. Bei mir jedoch erzeugt das Skript zwei separate Plots, einen Line-Plot und einen Scatter-Plot.
Das Verhalten ist übrigens identisch, wenn ich dieses Skriptchen ganz normal mit Python 2.7.6 (ohne IPython aufrufe). Es ist also kein IPython-Fehler.
Im Notebook sieht es auch nicht anders aus. Nachdem ich die Zeile
output_file("cos.html")
durch
output_notebook()
ersetzt habe, zeigt der show()
-Befehl aber immer nur den letzten aufgerufenen Plot, also den Scatter-Plot. Nur wenn ich diesen auskommentiere, bekomme ich auch den Line-Plot zu sehen. Natürlich bekomme ich beide, wenn ich jedem von ihnen ein show()
spendiere, aber das ist es ja gerade nicht, was ich möchte, ich möchte beide in einem Plot. Har irgendjemand von Euch da draußen eine Idee … ??
1 (Email-) Kommentar
im Tutorial zu Bokeh scheinen sie etwas vergessen zu haben. Folgendes scheint zu funktionieren:
# cos.py
from bokeh.plotting import *
from numpy import *
x = linspace(-2*pi, 2*pi, 100)
y = cos(x)
output_file("cos.html")
line(x, y, color="red")
hold()
scatter(x, y, marker="square", color="blue")
show()
Aus dem User Guide (http://bokeh.pydata.org/user_guide.html):
We are going to be combining several glyph renderers on to one plot, first we need to tell Bokeh to reuse the same plot using hold:
hold()
– Mirko O. (Kommentieren) (#)
Über …
Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, 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.
Werbung