def get_updates(self): es = self.es index = self.index xname, xmin, xmax, xbins = self.xname, self.xmin, self.xmax, self.xbins yname, ymin, ymax, ybins = self.yname, self.ymin, self.xmax, self.xbins x, y, c = get_2d_hist(xname, xmin, xmax, xbins, yname, ymin, ymax, ybins, es, index=index) x, y, c = map(np.array, [x, y, c]) # compute color codes using the given cmap cmap = self.cmap norm = mpl.colors.Normalize(vmin=0, vmax=np.percentile(c, 90), clip=True) mapper = cm.ScalarMappable(norm=norm, cmap=cmap) colors_int = (mapper.to_rgba(c) * 256).astype(int) ascode = lambda (r, g, b, a): "#{:02x}{:02x}{:02x}".format(r, g, b) color_codes = np.apply_along_axis(ascode, -1, colors_int) quads_renderer = self.fig.select(dict(name="quads"))[0] quads_ds = quads_renderer.data_source quads_ds.data["fill_color"] = color_codes quads_ds.data["line_color"] = color_codes return [quads_ds]
def draw_2d_hist_from_es(xname,xmin,xmax,xbins, yname,ymin,ymax,ybins, es,index="*",ax = None): """i plot the 2d histogram (heatmap) of a variables xname and yname between [xmin,xmax],[ymin,ymax] with [xbins,ybins] uniform bins respectively. i require es to be an elasticsearch.Elasticsearch client""" if ax is None: ax = figure() x,y,c = get_2d_hist(xname,xmin,xmax,xbins, yname,ymin,ymax,ybins, es,index=index) bin_w = (xmax-xmin)/float(xbins) bin_h = (ymax-ymin)/float(ybins) x = map(lambda x_i: int(x_i/bin_w), x) y = map(lambda y_i: int(y_i/bin_h), y) ax.x_range= brange(start=xmin,end=xmax) ax.y_range= brange(start=xmax,end=xmin) img = np.zeros([xbins,ybins]) img[x,y] = c return ax.image(image=[img], x=[xmin], y=[ymax], dw=[xmax-xmin], dh=[ymax-ymin], palette='RdYlBu11')
def draw_2d_hist_from_es(xname,xmin,xmax,xbins, yname,ymin,ymax,ybins, es,index="*",ax = None, cmap = cm.gist_earth,quad_name="quads"): """i plot the 2d histogram (heatmap) of a variables xname and yname between [xmin,xmax],[ymin,ymax] with [xbins,ybins] uniform bins respectively. i require es to be an elasticsearch.Elasticsearch client""" x,y,c = get_2d_hist(xname,xmin,xmax,xbins, yname,ymin,ymax,ybins, es,index=index) x,y,c = map(np.array,[x,y,c]) ax = classic_heatmap(x,y,c,xmin,xmax,xbins,ymin,ymax,ybins, fig=ax,cmap=cmap,quad_name=quad_name) return ax
def __init__(self, xname, xmin, xmax, xbins, yname, ymin, ymax, ybins, es, index="run*", fig=None, cmap=cm.RdYlBu): if fig is None: fig = figure() self.es = es self.index = index self.xname, self.xmin, self.xmax, self.xbins = xname, xmin, xmax, xbins self.yname, self.ymin, self.ymax, self.ybins = yname, ymin, ymax, ybins # get first histogram x, y, c = get_2d_hist(xname, xmin, xmax, xbins, yname, ymin, ymax, ybins, es, index=index) x, y, c = map(np.array, [x, y, c]) self.cmap = cmap self.fig = vis_bokeh.classic_heatmap(x, y, c, xmin, xmax, xbins, ymin, ymax, ybins, fig=fig, cmap=cmap)