【发布时间】:2018-02-27 02:17:35
【问题描述】:
我有一个多列的数据框。前两列是 x 和 y 坐标,其余列是 (x,y) 对的不同属性值。
import pandas as pd
import numpy as np
df = pd.DataFrame()
df['x'] = np.random.randint(1,1000,100)
df['y'] = np.random.randint(1,1000,100)
df['val1'] = np.random.randint(1,1000,100)
df['val2'] = np.random.randint(1,1000,100)
df['val3'] = np.random.randint(1,1000,100)
print df.head()
x y val1 val2 val3
0 337 794 449 969 933
1 19 563 592 677 886
2 512 467 664 160 16
3 36 112 91 230 910
4 972 572 336 879 860
在 Bokeh 中使用 customJS,我想通过提供下拉菜单来更改二维热图中的颜色值。
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource
from bokeh.models import LinearColorMapper
from bokeh.palettes import RdYlBu11 as palette
p = figure()
source = ColumnDataSource(df)
color_mapper = LinearColorMapper(palette=palette)
p.patches('x', 'y', source=source,\
fill_color={'field': 'val1', 'transform':color_mapper})
show(p)
上述命令绘制了一个颜色图,其颜色由列 'val1' 确定。我想根据下拉菜单中选择的内容绘制不同的列(val1、val2 或 val3)。
我可以在散景中创建一个下拉小部件
from bokeh.models.widgets import Select
select = Select(title="Option:", value="val1", options=["val1","val2","val3"])
但是,我不太确定如何使用选定的值通过回调来更新绘图。
有人可以在这里给我一个指导吗?
谢谢。
【问题讨论】: