2017-04-04 2 views
0

사용자가 선택할 수있는 변수를 기반으로 폴리곤의 색상 맵을 변경해야합니다. 나는 색상을 업데이트 할 수 있습니다,하지만 난 TapTool 하나의 다각형을 선택하면 다음 초기 컬러지도가 나타납니다 : 나는 선택 위젯의 '온도'를 선택하면,이 스크립트에서taptool을 사용하여 보케트 플롯에서 색상 매퍼 업데이트

from bokeh.plotting import figure, curdoc 
from bokeh.layouts import column, layout 
from bokeh.models import ColumnDataSource, LinearColorMapper, ColorBar, BasicTicker, Select 
from bokeh.palettes import Viridis256 as palette 

palette.reverse() 
TOOLS = "tap" 
p = figure(title="Coloring Humidity", tools=TOOLS) 

source = ColumnDataSource(dict(x=[[1, 3, 2], [3, 4, 6, 6]], 
           y=[[2, 1, 4], [4, 7, 8, 5]], 
           name=['A', 'B'], 
           humidity=[0, 1.0], 
           temperature=[10.0, 0.0] 
           ) 
         ) 

color_mapper = LinearColorMapper(palette=palette, low=0, high=1) 

pglyph = p.patches('x', 'y', source=source, fill_color={'field': 'humidity', 'transform': color_mapper}, 
        alpha=1, line_width=2) 

color_bar = ColorBar(color_mapper=color_mapper, label_standoff=12, border_line_color=None, location=(0, 0), 
        ticker=BasicTicker()) 
p.add_layout(color_bar, 'left') 


def color_change(attr, old, new): 
    cm = p.select_one(LinearColorMapper) 
    if new == 'humidity': 
     cm.update(low=0, high=1.0) 
    elif new == 'temperature': 
     cm.update(low=0, high=10) 
    else: 
     raise ValueError('unknown color') 
    pglyph.glyph.fill_color['field'] = new 
    p.title.text = 'Coloring {}'.format(new.title()) 


select = Select(value='humidity', options=['humidity', 'temperature']) 
select.on_change('value', color_change) 

l = layout([ 
    [select], 
    [p] 
]) 

curdoc().add_root(l) 

, 색상이 문제없이 다시 매핑하지만, 그런 다음 taptool을 사용하여 다각형 중 하나를 선택하면 선택한 폴리곤과 선택되지 않은 폴리곤의 색상이 습도의 색상 매핑으로 돌아갑니다. 나는 뭔가를 놓치고있는 것 같지만 무엇을 말할 수는 없다. 그래서 당신은해야하지, 데이터 컬러가 다시 매핑하게한다

pglyph.glyph.fill_color['field'] = new

콜백에서 ColorMapper의 낮은/높은 속성 변경 :

답변

0

나는 그냥 줄을 제거 할 수 있다고 생각 수동으로 색상을 설정해야합니다.

+0

내가 색칠에 사용하는 변수를 변경하고, 변수가 '온도', '습도'등의 다각형을 생각하면 사용자는 색을 지정할 기능을 선택할 수 있어야합니다. 질문을 더 구체적인 예로 편집하겠습니다. –

관련 문제