Bokeh + Python - наведите курсор на vbar, а данные поступают с pandas - PullRequest
0 голосов
/ 25 января 2020

У меня есть pandas фрейм данных, с которого я извлекаю данные и показываю их в виде гистограммы с использованием Bokeh. То, что я хочу, это показать максимальное значение каждого бара при наведении. Это первый день, когда я использую Bokeh, и я уже несколько раз менял код, и я действительно растерялся, как его настроить. Я добавил строку:

p.add_tools(HoverTool(tooltips=[("x_ax", "@x_ax"), ("y_ax", "@y_ax")]))

, но просто не понимаю этого.

Вот код:

from bokeh.plotting import figure, output_file, show
from bokeh.models import ColumnDataSource, ranges, LabelSet
from bokeh.plotting import figure, save, gridplot, output_file

# prepare some data
# x = pd.Series(range(1,36))
x_ax = FAdf['SampleID']
y_ax = FAdf['First Run Au (ppm)']

# output to static HTML file
output_file("bars.html")

# create a new plot with a title and axis labels
p = figure(x_range=x_ax, title="Batch results", x_axis_label='sample', y_axis_label='Au (ppm)',
           toolbar_location="above", plot_width=1200, plot_height=800)

p.add_tools(HoverTool(tooltips=[("x_ax", "@x_ax"), ("y_ax", "@y_ax")]))

# setup for the bars
p.vbar(x=x_ax, top=y_ax, width=0.9)

p.xgrid.grid_line_color = None
p.y_range.start = 0

# turn bar tick labels 45 deg
p.xaxis.major_label_orientation = np.pi/3.5

# show the results
show(p)

Пример из базы данных FAdf:

SampleID:
0                 KR-19  349
1                 KR-19  351
2                    Blank_2
3                 KR-19  353

First Run Au (ppm):
0      0.019
1      0.002
2      0.000
3      0.117

1 Ответ

0 голосов
/ 25 января 2020

Если вы передаете фактические последовательности буквенных данных методу глифа, как у вас выше, тогда Bokeh использует общие имена полей c, такие как "x" и "y", так как он не знает, какие другие имена используются. Это столбцы, для которых вам нужно настроить инструмент наведения:

tooltips=[("x_ax", "@x"), ("y_ax", "@y")])

В качестве альтернативы, вы можете передать аргумент source методу vbar, чтобы столбцы имели имена столбцов, которые вы предпочитаете , Это описано в руководстве пользователя:

https://docs.bokeh.org/en/latest/docs/user_guide/data.html

...