如何在散景悬停格式化程序上设置自定义日期时间模式?
Posted
技术标签:
【中文标题】如何在散景悬停格式化程序上设置自定义日期时间模式?【英文标题】:How can I set custom datetime pattern on Bokeh hover formatter? 【发布时间】:2019-01-27 09:18:56 【问题描述】:我正在尝试使用带有 Bokeh 的线图绘制一些与时间相关的值。当我尝试添加一个悬停来显示绘图某个点的具体值时,我的问题就出现了。
我想显示 value, time
数据(它工作正常),但我认为 yyyy-mm-dd
不适合我的目的,所以我想重新定义该模式以添加小时和分钟。
我的代码是这样的(你可以作为笔记本下载here):
from datetime import datetime, timedelta
from bokeh.plotting import figure, show
from bokeh.models import HoverTool
import pandas as pd
import numpy as np
today = datetime.today()
date_range = pd.date_range(today, today + timedelta(days=1),
freq=timedelta(minutes=15))
values = np.random.randint(-10, 10, size=len(date_range)).cumsum()
data = pd.DataFrame('date': date_range, 'value': values)
hover = HoverTool(tooltips=[('value', '@value'), ('date', '@date%F')],
formatters='date': 'datetime')
plt = figure(x_axis_type='datetime', tools=[hover])
plt.line(x='date', y='value', source=data)
show(plt)
输出是这样的:
所以我的问题如下:
谁能解释我如何修改悬停时的日期时间格式模式?
【问题讨论】:
【参考方案1】:您可以通过将%H:%M
添加到@date
来以小时和分钟为单位添加时间,如下所示:
hover = HoverTool(tooltips=[('value', '@value'), ('date', '@date%F %H:%M')],
formatters='date': 'datetime')
DatetimeTickFormatter 文档中描述了这些比例。
【讨论】:
【参考方案2】:供供应:bokeh version 2.4.1
1):只需在formatters
中输入“@”即可:
hover = HoverTool(tooltips=[('value', '@value'), ('date', '@date%F')],
formatters='@date': 'datetime')
------------行-------
2): 您可以为工具提示提供一个自定义 html 模板: link:boke org guidhover = HoverTool(
tooltips="""
<div>
<h3>@date%F</h3>
<div>
<strong>value: </strong>
<span style="font-size: 30px; font-weight: bold; color: #696;">@value</span>
</div>
</div>
""",
formatters='@date': 'datetime',
mode='vline'
)
【讨论】:
以上是关于如何在散景悬停格式化程序上设置自定义日期时间模式?的主要内容,如果未能解决你的问题,请参考以下文章