def plotloc(data, circleinds=[], crossinds=[], edgeinds=[], url_path=None, fileroot=None,
            tools="hover,tap,pan,box_select,wheel_zoom,reset", plot_width=450, plot_height=400):
    """ Make a light-weight loc figure """

    fields = ['l1', 'm1', 'sizes', 'colors', 'snrs', 'key']

    if not circleinds: circleinds = range(len(data['snrs']))

    # set ranges
    datalen = len(data['dm'])
    inds = circleinds + crossinds + edgeinds
    l1 = [data['l1'][i] for i in inds]
    l1_min = min(l1)
    l1_max = max(l1)
    m1 = [data['m1'][i] for i in inds]
    m1_min = min(m1)
    m1_max = max(m1)

    source = ColumnDataSource(data = dict({(key, tuple([value[i] for i in circleinds if i not in edgeinds])) 
                                           for (key, value) in data.iteritems() if key in fields}))
    loc = Figure(plot_width=plot_width, plot_height=plot_height, toolbar_location="left", x_axis_label='l1 (rad)', y_axis_label='m1 (rad)',
                 x_range=(l1_min, l1_max), y_range=(m1_min,m1_max), tools=tools, output_backend='webgl')
    loc.circle('l1', 'm1', size='sizes', line_color=None, fill_color='colors', fill_alpha=0.2, source=source)

    if crossinds:
        sourceneg = ColumnDataSource(data = dict({(key, tuple([value[i] for i in crossinds]))
                                                  for (key, value) in data.iteritems() if key in fields}))
        loc.cross('l1', 'm1', size='sizes', line_color='colors', line_alpha=0.3, source=sourceneg)

    if edgeinds:
        sourceedge = ColumnDataSource(data = dict({(key, tuple([value[i] for i in edgeinds]))
                                                   for (key, value) in data.iteritems() if key in fields}))
        loc.circle('l1', 'm1', size='sizes', line_color='colors', fill_color='colors', source=sourceedge, line_alpha=0.5, fill_alpha=0.2)

    hover = loc.select(dict(type=HoverTool))
    hover.tooltips = OrderedDict([('SNR', '@snrs'), ('key', '@key')])

    if url_path and fileroot:
        url = '{}/cands_{}_@key.png'.format(url_path, fileroot)
        taptool = loc.select(type=TapTool)
        taptool.callback = OpenURL(url=url)

    return loc
def plotloc ( data , circleinds = [ ] , crossinds = [ ] , edgeinds = [ ] , url_path = None , fileroot = None , tools = "hover,tap,pan,box_select,wheel_zoom,reset" , plot_width = 450 , plot_height = 400 ) : fields = [ 'l1' , 'm1' , 'sizes' , 'colors' , 'snrs' , 'key' ] if not circleinds : circleinds = range ( len ( data [ 'snrs' ] ) ) datalen = len ( data [ 'dm' ] ) inds = circleinds + crossinds + edgeinds l1 = [ data [ 'l1' ] [ i ] for i in inds ] l1_min = min ( l1 ) l1_max = max ( l1 ) m1 = [ data [ 'm1' ] [ i ] for i in inds ] m1_min = min ( m1 ) m1_max = max ( m1 ) source = ColumnDataSource ( data = dict ( { ( key , tuple ( [ value [ i ] for i in circleinds if i not in edgeinds ] ) ) for ( key , value ) in data . iteritems ( ) if key in fields } ) ) loc = Figure ( plot_width = plot_width , plot_height = plot_height , toolbar_location = "left" , x_axis_label = 'l1 (rad)' , y_axis_label = 'm1 (rad)' , x_range = ( l1_min , l1_max ) , y_range = ( m1_min , m1_max ) , tools = tools , output_backend = 'webgl' ) loc . circle ( 'l1' , 'm1' , size = 'sizes' , line_color = None , fill_color = 'colors' , fill_alpha = 0.2 , source = source ) if crossinds : sourceneg = ColumnDataSource ( data = dict ( { ( key , tuple ( [ value [ i ] for i in crossinds ] ) ) for ( key , value ) in data . iteritems ( ) if key in fields } ) ) loc . cross ( 'l1' , 'm1' , size = 'sizes' , line_color = 'colors' , line_alpha = 0.3 , source = sourceneg ) if edgeinds : sourceedge = ColumnDataSource ( data = dict ( { ( key , tuple ( [ value [ i ] for i in edgeinds ] ) ) for ( key , value ) in data . iteritems ( ) if key in fields } ) ) loc . circle ( 'l1' , 'm1' , size = 'sizes' , line_color = 'colors' , fill_color = 'colors' , source = sourceedge , line_alpha = 0.5 , fill_alpha = 0.2 ) hover = loc . select ( dict ( type = HoverTool ) ) hover . tooltips = OrderedDict ( [ ( 'SNR' , '@snrs' ) , ( 'key' , '@key' ) ] ) if url_path and fileroot : url = '{}/cands_{}_@key.png' . format ( url_path , fileroot ) taptool = loc . select ( type = TapTool ) taptool . callback = OpenURL ( url = url ) return loc
Make a light-weight loc figure