In [2]:
import pandas as pd
from bokeh.io import output_notebook, show
output_notebook()


BokehJS successfully loaded.

In [15]:
from bokeh.charts import Bar
from bokeh.models import HoverTool

numbers = [1, 2, 3, 4, 5]
names = ['a', 'b', 'c', 'd', 'e']

bar = Bar(numbers, names, tools='hover')
hover = bar.select(dict(type=HoverTool))

hover.tooltips = [
  ('position', '$index'),
  ('name',' @cat'),
]

show(bar)



In [17]:
numbers = [1, 2, 3, 4, 5]
names = ['a', 'b', 'c', 'd', 'e']
df = pd.DataFrame(numbers, names)

bar_new = Bar(df, names, tools='hover')
hover = bar_new.select(dict(type=HoverTool))

hover.tooltips = [
  ('position', '$index'),
  ('name',' @cat'),
]

show(bar_new)


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-17-9fbeab579d7b> in <module>()
      3 df = pd.DataFrame([numbers, names])
      4 
----> 5 bar_new = Bar(df, names, tools='hover')
      6 hover = bar_new.select(dict(type=HoverTool))
      7 

/opt/miniconda/envs/ipython_bokeh_34/lib/python3.4/site-packages/bokeh/charts/builder/bar_builder.py in Bar(values, cat, stacked, xscale, yscale, xgrid, ygrid, continuous_range, **kw)
     91         BarBuilder, values, cat=cat, stacked=stacked,
     92         xscale=xscale, yscale=yscale,
---> 93         xgrid=xgrid, ygrid=ygrid, y_range=y_range, **kw
     94     )
     95 

/opt/miniconda/envs/ipython_bokeh_34/lib/python3.4/site-packages/bokeh/charts/_builder.py in create_and_build(builder_class, values, **kws)
     40     chart_kws = { k:v for k,v in kws.items() if k not in builder_props}
     41     chart = Chart(**chart_kws)
---> 42     chart.add_builder(builder)
     43 
     44     return chart

/opt/miniconda/envs/ipython_bokeh_34/lib/python3.4/site-packages/bokeh/charts/_chart.py in add_builder(self, builder)
    116     def add_builder(self, builder):
    117         self._builders.append(builder)
--> 118         builder.create(self)
    119 
    120         # Add tools if supposed to

/opt/miniconda/envs/ipython_bokeh_34/lib/python3.4/site-packages/bokeh/charts/_builder.py in create(self, chart)
    163     def create(self, chart=None):
    164         self._adapt_values()
--> 165         self._process_data()
    166         self._set_sources()
    167         renderers = self._yield_renderers()

/opt/miniconda/envs/ipython_bokeh_34/lib/python3.4/site-packages/bokeh/charts/builder/bar_builder.py in _process_data(self)
    154         for i, (val, values) in enumerate(self._values.items()):
    155             self.set_and_get("", val, list(values))
--> 156             mid = np.array(values) / 2
    157             self.set_and_get("mid", val, mid)
    158             self.set_and_get("stacked", val, zero + mid)

TypeError: unsupported operand type(s) for /: 'str' and 'int'

In [10]:
gr = bar_new.renderers[-1]

In [19]:
from bokeh.models import GlyphRenderer

In [22]:
gr = bar.select(dict(type=GlyphRenderer))[0]
source = gr.data_source

In [23]:
source.column_names


Out[23]:
['cat0', '0', 'mid0', 'stacked0', 'cat', 'width_cat', 'width', 'zero']

In [24]:
source.data


Out[24]:
{'0': [1, 2, 3, 4, 5],
 'cat': ['a', 'b', 'c', 'd', 'e'],
 'cat0': ['a:0.5', 'b:0.5', 'c:0.5', 'd:0.5', 'e:0.5'],
 'mid0': array([ 0.5,  1. ,  1.5,  2. ,  2.5]),
 'stacked0': array([ 0.5,  1. ,  1.5,  2. ,  2.5]),
 'width': [0.8, 0.8, 0.8, 0.8, 0.8],
 'width_cat': [0.2, 0.2, 0.2, 0.2, 0.2],
 'zero': array([ 1.,  2.,  3.,  4.,  5.])}

In [ ]: