Python 如何在Bokeh Hovertool中仅显示整数

Python 如何在Bokeh Hovertool中仅显示整数,python,bokeh,Python,Bokeh,我已经建立了一个flask应用程序,它在Bokeh中绘制了几个图形 x值是表示天或周的datetime对象,y值是正在跟踪的值。每天都有一个y值,它是一个整数 我添加了一个hovertool来显示图形中绘图的y值,问题是hovertool沿绘图线显示浮点值。为了获得视觉效果,我绘制了线条和圆圈,但即使移除线条,这仍然是正确的 将要使用这些图形的人员询问是否可以只显示数据更改点的整数,我尝试将Yvalue转换为整数,但这不是hovertool获取其值的驱动因素 另一件事,如果可能的话,我想改变的是

我已经建立了一个flask应用程序,它在Bokeh中绘制了几个图形

x值是表示天或周的datetime对象,y值是正在跟踪的值。每天都有一个y值,它是一个整数

我添加了一个hovertool来显示图形中绘图的y值,问题是hovertool沿绘图线显示浮点值。为了获得视觉效果,我绘制了线条和圆圈,但即使移除线条,这仍然是正确的

将要使用这些图形的人员询问是否可以只显示数据更改点的整数,我尝试将Yvalue转换为整数,但这不是hovertool获取其值的驱动因素

另一件事,如果可能的话,我想改变的是增加鼠标悬停工具中文本的字体大小。我在和上查看了文档,但我无法设置它

这是我的鼠标悬停工具的代码

 hover = HoverTool(tooltips=[
(title, "($y)")
后来

   fig = figure(plot_width=500,plot_height=500,title=title,x_axis_type='datetime',tools=[hover])    

如果要更改悬停工具中值的格式,可以在指定每个悬停工具字段时指定格式。请参阅:

以下是一个具有不同格式的示例:

from bokeh.plotting import figure, output_file, show, ColumnDataSource
from bokeh.models import HoverTool

output_file("toolbar.html")

source = ColumnDataSource(data=dict(
    x=[1.8, 2, 3, 4, 5],
    y=[2.2, 5, 8.234, 2, 7.22],
    n_id=[1.8,2.8,2.2,2.4,2.5]))

hover = HoverTool(
    tooltips=[
        ( 'x','$x{0}'),
        ( 'y','@y{0.0}'),
        ('id','@n_id{0}')
    ],
)

p = figure(plot_width=400, plot_height=400, tools=[hover],
           title="Mouse over the dots")

p.circle('x', 'y', size=20, source=source)

show(p)
如果希望对外观进行更多控制,则需要编写自定义工具提示:

您可以使用它并像这样组合格式化程序:

from bokeh.plotting import figure, output_file, show, ColumnDataSource
from bokeh.models import HoverTool

output_file("toolbar.html")

source = ColumnDataSource(data=dict(
    x=[1.8, 2, 3, 4, 5],
    y=[2.2, 5, 8.234, 2, 7.22],
    n_id=[1.8,2.8,2.2,2.4,2.5]))

hover = HoverTool(
    tooltips="""
    <div>
        <div>
            <span style="font-size: 17px; font-weight: bold;">x: @x{0.0}</span>
        </div>
        <div>
            <span style="font-size: 15px; color: #966;">y: @y{0.00}</span>
        </div>
        <div>
            <span style="font-size: 23px; color: #966;">id: @n_id{0}</span>
        </div>
    </div>
    """
)

p = figure(plot_width=400, plot_height=400, tools=[hover],
           title="Mouse over the dots")

p.circle('x', 'y', size=20, source=source)

show(p)
从bokeh.plotting导入图形,输出_文件,显示,ColumnDataSource
从bokeh.models导入鼠标悬停工具
输出文件(“toolbar.html”)
source=ColumnDataSource(数据=dict(
x=[1.8,2,3,4,5],
y=[2.2,5,8.234,2,7.22],
n_id=[1.8,2.8,2.2,2.4,2.5]))
悬停=悬停工具(
工具提示=“”
x:@x{0.0}
y:@y{0.00}
id:@n_id{0}
"""
)
p=图形(绘图宽度=400,绘图高度=400,工具=[悬停],
title=“鼠标悬停在点上”)
p、 圆('x','y',大小=20,震源=震源)
表演(p)

谢谢,这非常有效。首先,我只是更改并删除了小数点,然后创建了一个自定义工具提示,但它丢失了我的title变量,所以我使用了一种混合方法,将html放入标准的HoverTool构造函数中<代码>代码悬停=悬停工具(工具提示=[
代码
(标题,'@y{0}''),
代码
)很高兴它为您解决了问题。自定义工具提示非常灵活,您可以向其添加所有不同类型的格式等。如果您查看上面的示例,我只是将变量名放在值旁边。显然,您可以使用任何允许的html元素组合来实现布局。