2014-12-24 11 views
5

In vielen Bokeh Beispiele (zB die unemployment chart und die periodic table), ich sehe, dass das Plotten primitive rectcolor aus ColumnDataSource aus einer HTML-Darstellung erhält:Farbformat von Bokeh akzeptiert Plots

zB:

.... 

colors = [ 
    "#75968f", "#a5bab7", "#c9d9d3", "#e2e2e2", "#dfccce", 
    "#ddb7b1", "#cc7878", "#933b41", "#550b1d" 
] 

source = ColumnDataSource(
    data=dict(month=month, year=year, color=color, rate=rate) 
) 

p.rect("year", "month", 1, 1, source=source, 
    color="color", line_color=None) 

Allerdings, mit Blick auf die documentation of rect, sehe ich keinen Parameter für color (beachten Sie, dass Sie "line-properties" und "fill-properties" Parameter übergeben können, aber keine von ihnen akzeptieren color als Parameter)

Am wichtigsten für diese Frage, gibt es einen anderen Weg, außer HTML, spezifizieren Farben für Bokeh-Plots? Idealerweise möchte ich Farben mit der color palettes erzeugt von seaborn angeben.

Antwort

4

color ist ein Convenience-Argument für die Plot Glyph-Methoden, die gleichzeitig line_color und fill_color setzt. Das sind die eigentlichen Argumente, falls Sie sie lieber explizit verwenden oder sie unabhängig setzen möchten.

Es gibt jetzt auch ein LinearColorMapper Objekt, das Sie mit einer der Paletten in bokeh.palettes oder mit Ihrer eigenen Farbabfolge konfigurieren können. Sie können dies aus Python verwenden, um Daten in die Liste der Farben für ColumnDataSource zu mappen.

Beachten Sie, dass in einer zukünftigen Version (wahrscheinlich 0,8) Sie in der Lage sein werden, eine Palette/colormapper + Spaltennamen für die color (oder line_color oder fill_color) Argumente zu spezifizieren, und dann die Farbzuordnung auf dem Client passieren wird (statt über die möglicherweise große Liste von Farben explizit senden)