gg3*_*349 4 python tooltip bokeh
我在Bokeh中绘制了很多点,并且我已经将HoverTool添加到图的工具列表中,以便x,y鼠标在接近字形时显示鼠标的坐标.
当鼠标接近紧密堆积在一起的一组字形时,我会获得与字形一样多的工具提示.我只想要一个工具提示,一个最接近的字形.这不仅仅是一个演示细节,因为对于很多点,这会导致:
import numpy.random
from bokeh.plotting import figure, output_notebook, show
from bokeh.models import HoverTool
output_notebook()
hover = HoverTool()
hover.tooltips = [("(x,y)", "($x, $y)")]
x = numpy.random.randn(500)
y = numpy.random.randn(500)
p = figure(tools=[hover])
p.circle(x,y, color='red', size=14, alpha=0.4)
show(p)
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题,并提出了使用自定义工具提示的解决方案.我在顶部插入一个样式标记,它只显示该类div下的第一个子.bk-tooltip项,这是第一个工具提示.
这是一个有效的例子:
from bokeh.plotting import figure, show
from bokeh.models import HoverTool, Range1d
custom_hover = HoverTool()
custom_hover.tooltips = """
<style>
.bk-tooltip>div:not(:first-child) {display:none;}
</style>
<b>X: </b> @x <br>
<b>Y: </b> @y
"""
p = figure(tools=[custom_hover]) #Custom behavior
#p = figure(tools=['hover']) #Default behavior
p.circle(x=[0.75,0.75,1.25,1.25], y=[0.75,1.25,0.75,1.25], size=230, color='red', fill_alpha=0.2)
p.y_range = Range1d(0,2)
p.x_range = Range1d(0,2)
show(p)
Run Code Online (Sandbox Code Playgroud)
这是一种hacky解决方案,但它适用于Safari,Firefox和Chrome.我想他们很快就会推出更长远的解决方案.
小智 5
使用 Bokeh 2.2.2 发布的 CSS 解决方案对我不起作用。做了以下事情:
div.bk-tooltip.bk-right>div.bk>div:not(:first-child) {
display:none !important;
}
div.bk-tooltip.bk-left>div.bk>div:not(:first-child) {
display:none !important;
}
Run Code Online (Sandbox Code Playgroud)
不是最优雅的解决方案,但它以 40 个垂直堆叠的工具提示结束了我的挫败感。这是通过带有自定义 CSS 的网站上的嵌入式图表实现的。
| 归档时间: |
|
| 查看次数: |
1839 次 |
| 最近记录: |