是否可以将悬浮/选择工具与bokeh文字标志符号一起使用?
使用相同的基本设置,我可以使用悬浮工具在圆形字形上获得出色的工具提示,但不能在文本字形上获得
import numpy
import pandas
from bokeh import charts, plotting, models
plotting.output_notebook()
blue = 'STEELBLUE'
green = 'FORESTGREEN'
datalist = [
{'month': 'Oct', 'rain': 131., 'snow': 0.0, 'wy_month': 1},
{'month': 'Nov', 'rain': 12.4, 'snow': 0.0, 'wy_month': 2},
{'month': 'Dec', 'rain': 43.0, 'snow': 13.5, 'wy_month': 3},
{'month': 'Jan', 'rain': 63.0, 'snow': 9.2, 'wy_month': 4},
{'month': 'Feb', 'rain': 72.6, 'snow': 35.3, 'wy_month': 5},
{'month': 'Mar', 'rain': 13.5, 'snow': 4.2, 'wy_month': 6},
{'month': 'Apr', 'rain': 107., 'snow': 1.5, 'wy_month': 7},
{'month': 'May', 'rain': 77.0, 'snow': 0.0, 'wy_month': 8},
{'month': 'Jun', 'rain': 107., 'snow': 0.0, 'wy_month': 9},
{'month': 'Jul', 'rain': 216., 'snow': 0.0, 'wy_month': 10},
{'month': 'Aug', 'rain': 76.8, 'snow': 0.0, 'wy_month': 11},
{'month': 'Sep', 'rain': 76.4, 'snow': 0.0, 'wy_month': 12}
]
data = pandas.DataFrame(datalist).assign(total=lambda df: df['rain'] + df['snow'])
source = plotting.ColumnDataSource(data)
tooltips = [
("month", "@month"),
("rain", "@rain"),
("snow", "@snow"),
]
圈子的工作版本
hover_circle = models.HoverTool(tooltips=tooltips)
TOOLS_circle = [hover_circle, models.ResetTool(), models.BoxSelectTool()]
fig = plotting.figure(width=600, height=300, y_range=(0, 250),
x_range=data['month'].tolist(),
tools=TOOLS_circle)
fig.circle(x='wy_month', y='rain', color=blue, source=source, selection_color = "orange", nonselection_alpha=0.2)
fig.circle(x='wy_month', y='snow', color=green, source=source, selection_color = "orange", nonselection_alpha=0.2)
plotting.show(fig)
可以选择圆形并更改颜色。
非工作版本的文本
hover_text = models.HoverTool(tooltips=tooltips)
TOOLS_text = [hover_text, models.ResetTool(), models.BoxSelectTool()]
fig = plotting.figure(width=600, height=300, y_range=(0, 250),
x_range=data['month'].tolist(),
tools=TOOLS_text)
fig.text(x='wy_month', y='rain', text="month", text_color=blue, source=source, selection_text_color = "orange", nonselection_text_alpha=0.2)
fig.text(x='wy_month', y='snow', text="month", text_color=green, source=source, selection_color = "orange", nonselection_alpha=0.2)
plotting.show(fig)
既不能选择文本,也不能改变颜色,也不会显示工具提示。
答案 0 :(得分:1)
文本字形仅支持点命中测试,甚至仅支持1.0版或更高版本。因此,这意味着:悬停工具和点按选择将在文本(1.0或更高版本)上起作用,但框选择则无效。欢迎您打开GitHub issue讨论添加此功能。同时,作为一种解决方法,您可以使用相同的数据源添加一些不可见的圆圈,只是为了推动选择:
fig.circle(x='wy_month', y='snow', size=8,
alpha=0, nonselection_alpha=0, source=source)
fig.circle(x='wy_month', y='rain', size=8,
alpha=0, nonselection_alpha=0, source=source)