This docs on this page refers to a PREVIOUS VERSION. For the latest stable release, go to https://docs.bokeh.org/

Archived docs for versions <= 1.0.4 have had to be modified from their original published configuration, and may be missing some features (e.g. source listing)

All users are encourage to update to version 1.1 or later, as soon as they are able.

Bokeh Docs

les_mis

< box_annotation | back to Gallery | unemployment >

            inspect
            • Hover Tool
              import numpy as np
              
              from bokeh.plotting import figure, show, output_file
              from bokeh.models import HoverTool, ColumnDataSource
              from bokeh.sampledata.les_mis import data
              
              nodes = data['nodes']
              names = [node['name'] for node in sorted(data['nodes'], key=lambda x: x['group'])]
              
              N = len(nodes)
              counts = np.zeros((N, N))
              for link in data['links']:
                  counts[link['source'], link['target']] = link['value']
                  counts[link['target'], link['source']] = link['value']
              
              colormap = ["#444444", "#a6cee3", "#1f78b4", "#b2df8a", "#33a02c", "#fb9a99",
                          "#e31a1c", "#fdbf6f", "#ff7f00", "#cab2d6", "#6a3d9a"]
              
              xname = []
              yname = []
              color = []
              alpha = []
              for i, node1 in enumerate(nodes):
                  for j, node2 in enumerate(nodes):
                      xname.append(node1['name'])
                      yname.append(node2['name'])
              
                      alpha.append(min(counts[i,j]/4.0, 0.9) + 0.1)
              
                      if node1['group'] == node2['group']:
                          color.append(colormap[node1['group']])
                      else:
                          color.append('lightgrey')
              
              source = ColumnDataSource(data=dict(
                  xname=xname,
                  yname=yname,
                  colors=color,
                  alphas=alpha,
                  count=counts.flatten(),
              ))
              
              p = figure(title="Les Mis Occurrences",
                         x_axis_location="above", tools="resize,hover,save",
                         x_range=list(reversed(names)), y_range=names)
              
              p.plot_width = 800
              p.plot_height = 800
              p.grid.grid_line_color = None
              p.axis.axis_line_color = None
              p.axis.major_tick_line_color = None
              p.axis.major_label_text_font_size = "5pt"
              p.axis.major_label_standoff = 0
              p.xaxis.major_label_orientation = np.pi/3
              
              p.rect('xname', 'yname', 0.9, 0.9, source=source,
                     color='colors', alpha='alphas', line_color=None)
              
              p.select_one(HoverTool).tooltips = [
                  ('names', '@yname, @xname'),
                  ('count', '@count'),
              ]
              
              output_file("les_mis.html", title="les_mis.py example")
              
              show(p) # show the plot