def bar_color_by_year(): df = odo(g.ds, pd.DataFrame) df1 = df.groupby(['production_year', 'color' ]).size().reset_index().rename(columns={0: 'count'}) sums = df.groupby( ['production_year', 'color']).agg('size').reset_index().groupby('production_year').sum() df1['prc'] = df1.apply(lambda x: x[2] * 100 / sums.loc[x[0]], axis=1) form = CarsRelativeValuesForm(request.args, csrf_enabled=False) field = 'prc' if 'submit' in request.args and form.validate( ) and form.is_relative.data else 'count' p = Bar( df1, values=field, label='production_year', stack='color', legend=False, #'top_right', title='Colors by Year of production', xlabel="Year", ylabel="Count", ) p.background_fill_color = "beige" return render(p, dict(form=form))
def systemEvolutionBarPlot(df, yLabel, values): with Timer(key='systemEvolutionBarPlot', verbose=True): p = Bar(df, label='snapshot', values=values, agg='sum', stack='software', legend='bottom_left', bar_width=0.5, xlabel="Snapshots", ylabel=yLabel, responsive=True, height=200,tools='hover') glyph_renderers = p.select(GlyphRenderer) bar_source = [glyph_renderers[i].data_source for i in range(len(glyph_renderers))] hover = p.select(HoverTool) hover.tooltips = [ ('software',' @software'), ('value', '@height'), ] p.xaxis.formatter=FuncTickFormatter.from_py_func(getWeekStringTick) p.axis.minor_tick_line_color = None p.background_fill_color = "#fafafa" p.legend.location = "top_left" p.toolbar.logo = None p.toolbar_location = None legend=p.legend[0].legends p.legend[0].legends=[] l = Legend( location=(0, -30)) l.items=legend p.add_layout(l, 'right') return p