Средство форматирования даты и времени Bokeh HoverTool не работает

Мой код для боке HoverTool следующий:

p = figure(
        plot_height=250,
        x_axis_type='datetime',
    )
p.vbar(x=data_df['date'].dt.to_pydatetime(), top=data_df['data'].values, width=datetime.timedelta(1))
hover_tool = HoverTool(
        tooltips=[('Count', '@top'), ('Date', '@x')], mode='vline', formatters = {'$x': 'datetime'}
    )
p.add_tools(hover_tool)

Я по-прежнему получаю числовой формат даты, как видно на изображении. Я пытался formatters = {'@x': 'datetime'} безуспешно.Средство форматирования даты и времени Bokeh HoverTool не работает

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваше решение работает, если вы используете $x вместо @x и добавляете один из перечисленных форматов, поддерживаемых DatetimeTickFormatter, к ('Date', '$x'), например ('Date', '$x{%F}'). Есть много вариантов, и вы можете выбрать тот, который вы предпочитаете больше всего.

Минимальный пример

import pandas as pd
from bokeh.plotting import show, figure, output_notebook
from bokeh.models import HoverTool, ColumnDataSource
output_notebook()

data_df = pd.DataFrame({'date':pd.date_range('2022-05-13', freq='D', periods=10), 'top':list(range(10))})

p = figure(
        plot_height=250,
        x_axis_type='datetime',
    )
p.vbar(x=data_df['date'], top=data_df['top'], width=pd.Timedelta('12H'))
hover_tool = HoverTool(
        tooltips=[('Count', '@top'), ('Date', '$x{%F}')], mode='vline', formatters = {"$x": "datetime"}
    )
p.add_tools(hover_tool)
show(p)

Hover with Date

Комментарий:

Я не знаю, почему нет рабочего дефолта, но, может быть, из-за того, что вариантов так много, что любой дефолт был бы чем-то неправильным.

Спасибо решает спасибо!

Azorx 13.05.2022 13:03

Другие вопросы по теме