как показать целое число, а не с плавающей запятой, с всплывающей подсказкой в ​​боке

У меня есть простой график точек данных X-Y. Я хочу, чтобы моя фигура Боке показывала мне целочисленное значение каждой точки данных, когда я наводил на нее курсор. Я близок к тому, чтобы получить то, что хочу, но когда я нахожу указатель на точку данных, отображается плавающее значение, а затем выше используется научная нотация. Есть ли способ, чтобы инструмент наведения возвращал только целочисленные значения X и Y и не использовал научную нотацию?

Вот пример кода:

from bokeh.plotting import *
from bokeh.models import HoverTool

x = range(1,101)
y = [i*i for i in x]

TOOLS = "pan,wheel_zoom,box_zoom,reset,save,box_select, hover"

p = figure(x_axis_label = "Days",
       y_axis_label = "Return",
       tools=TOOLS)
p.circle(x, y)

#adjust what information you get when you hover over it
hover = p.select(dict(type=HoverTool))
hover.tooltips = [
    ("Days", "$x"),
    ("Return", "$y"),
]

show(VBox(p))

person captain ahab    schedule 11.03.2015    source источник


Ответы (2)


Добавляю свои два цента. Я понял, что вы можете управлять десятичными точками, используя следующий код:

hover.tooltips = [
    ("Days", "@x{int}"), # this will show integer, even if x is float
    ("Return", "@y{1.11}"), # this will format as 2-decimal float
]

Надеюсь это поможет.

person WillZ    schedule 20.08.2015
comment
Уилл, любопытно, умеете ли вы масштабировать y, а затем форматировать его. например, предположим, что вы хотите умножить y на 100 и получить отчет в процентах. есть мысли о том, как это указать? - person Chris; 30.08.2016
comment
Отлично. Вы знаете, есть ли такое обозначение для форматирования дат? Найти в документах этого не удалось; у вас случайно есть ссылка, где это находится? Спасибо! - person ryanjdillon; 30.10.2016
comment
@Chris, извините, не знает флага для процентного форматирования. Я полагаю, вы уже пробовали флаги форматирования Python? Что я бы сделал, так это создать еще один столбец в вашем источнике данных и вместо этого построить график, который не идеально, но может помочь вам в этом. - person WillZ; 01.11.2016
comment
@ryanjdillon Я думаю, что нашел их в архивах их группы Google. К сожалению, насколько я знаю, этого нет в документации. Я еще не заглядывал в исходный код, чтобы узнать, как он разбирается, но он немного отличается от традиционных строк формата Python. Однако такие вещи, как «+1.11», по-прежнему работают, т.е. ставят знак перед числами. - person WillZ; 01.11.2016

Ага! Использование @ вместо $ работает.

hover.tooltips = [
    ("Days", "@x"),
    ("Return", "@y"),
]
person captain ahab    schedule 12.03.2015
comment
Спасибо, что поделились этой информацией, у меня была такая же проблема - person Luis Miguel; 03.07.2015
comment
yep $x - это встроенная точка данных холста указателя мыши, @x - фактическая точка данных независимо от того, где вы наводите курсор на глиф. - person jxramos; 10.07.2017