2016-08-26 9 views
3

私はpython 3.5とbokeh 0.12.1を使用していますが、別々のセグメントに複数の色を持つ単純な線をプロットしようとしています。基本的には、列の値に基づいて行の色を変えてください。ここ は、私のコードの簡易版である:Python bokeh:同じ行に複数のカラーセグメントがあります

import numpy as np 
from numpy import vectorize 
import pandas as pd 
from bokeh.plotting import figure, show, output_file 


def f(x): 
    return 2 * x 


def color(x): 
    if x < 20: 
     return 0 
    if 20 <= x < 60: 
     return 1 
    if 60 <= x < 80: 
     return 0 
    else: 
     return 1 


v_color = vectorize(color) 
x = np.arange(0, 100, 1) 
data = {'x': x, 'y': f(x), 'colors': v_color(x)} 
df = pd.DataFrame(data=data) 
# print(df) 

p = figure(title="Line example") 

p.line(df['x'], df['y'], legend="y=f(x)", 
     # line_color="tomato", 
     line_color="olivedrab", 
     line_width=2) 

p.legend.location = "top_left" 

output_file("basic_line_test.html", title="line plot example") 

show(p) # open a browser 

基本的に行は値がどのように1 ときに列「色は」0と「トマト」の場合のは、「olivedrab」を言わせて、一つの色を持っている必要がありますそれをしてもいいですか?

答えて

0

Bokeh 0.12.1現在、これは現在サポートされていません。線は一度に1つの色しか持つことができません。あなたの次の最良の賭けは、multi_lineまたはsegmentsグリフ関数を試してみることですが、これを行うともう少し冗長になります(個々のセグメントの開始点と終了点を計算して指定する必要があります)。

今後のリリースでこれが機能として追加される可能性がありますので、GitHub issue trackerプロジェクトで機能リクエストを送信することをおすすめします。

関連する問題