Python 修改Bokeh中悬停显示的格式

Python 修改Bokeh中悬停显示的格式,python,datetime,bokeh,Python,Datetime,Bokeh,我在x轴上有datetime,我试图把它画成datetime,但显然,根据Bokeh的说法,它只能有数字轴。除非现在已经改变了,否则请告诉我。 但我想知道是否至少有一种方法可以在悬停上显示datetime而不是时间戳(类似于153286000) 我尝试将添加到_datetime(),但没有成功。您需要设置x\u轴\u type=“datetime”并对日期时间使用如下格式: p.select_one(HoverTool).formatters = {'Datetime': 'datetime'}

我在x轴上有datetime,我试图把它画成datetime,但显然,根据Bokeh的说法,它只能有数字轴。除非现在已经改变了,否则请告诉我。 但我想知道是否至少有一种方法可以在悬停上显示datetime而不是时间戳(类似于
153286000


我尝试将
添加到_datetime()
,但没有成功。

您需要设置
x\u轴\u type=“datetime”
并对日期时间使用如下格式:

p.select_one(HoverTool).formatters = {'Datetime': 'datetime'}
请参阅下面的完整示例(Bokeh v1.1.0)。另见

结果:


谢谢!这几乎奏效了。出于某种原因,我有两个窗口,一个在另一个上面,另一个上面写着“索引”,“数据(x,y)”,“屏幕(x,y)”。不知道那是什么或是从哪里来的。另外,我如何包括整个约会时间?这是因为你可能在
figure
构造函数中添加了
HoverTool
。确保只添加一次,如示例中所示。
p.select_one(HoverTool).formatters = {'Datetime': 'datetime'}
import numpy as np
from bokeh.io import output_file, show
from bokeh.models import ColumnDataSource, HoverTool
from bokeh.plotting import figure
from bokeh.sampledata.stocks import AAPL

def datetime(x):
    return np.array(x, dtype = np.datetime64)

source = ColumnDataSource(data = {'date'      : datetime(AAPL['date'][::10]),
                                  'adj close' : AAPL['adj_close'][::10],
                                  'volume'    : AAPL['volume'][::10]})

p = figure(plot_height = 250, x_axis_type = "datetime", sizing_mode = "scale_width")

p.background_fill_color = "#f5f5f5"
p.grid.grid_line_color = "white"
p.xaxis.axis_label = 'Date'
p.yaxis.axis_label = 'Price'
p.axis.axis_line_color = None

p.line(x = 'date', y = 'adj close', line_width = 2, color = '#ebbd5b', source = source)

hover = HoverTool(mode = 'vline')
hover.tooltips = [('date', '@date{%F}'), ('close', '$@{adj close}{%0.2f}'), ('volume', '@volume{0.00 a}')]
hover.formatters = {'date': 'datetime', 'adj close' : 'printf'}
p.add_tools(hover)

show(p)