def output_chart(issues_df, output_mode='static'): import datetime import bokeh from bokeh.models import HoverTool # Add timestamp to title issues_chart = Bar(issues_df, label='value_delivered', values='status', agg='count', stack='status', title=ISSUES_TITLE + " (Updated " + datetime.datetime.now().strftime('%m/%d/%Y') + ")", xlabel="Value Delivered", ylabel="Number of Use Cases", legend='top_right', tools='hover', color=brewer["GnBu"][3]) issues_chart.plot_width = DESTINATION_FRAME_WIDTH - (HTML_BODY_MARGIN * 2) issues_chart.plot_height = DESTINATION_FRAME_HEIGHT - (HTML_BODY_MARGIN * 2) issues_chart.logo = None issues_chart.toolbar_location = None hover = issues_chart.select(dict(type=HoverTool)) hover.tooltips = [("Value Delivered", "$x")] #--- Configure output --- reset_output() if output_mode == 'static': # Static file. CDN is most space efficient output_file(ISSUES_FILE, title=ISSUES_TITLE, autosave=False, mode='cdn', root_dir=None) # Generate file save(issues_chart, filename=ISSUES_FILE) elif output_mode == 'notebook': output_notebook() # Show inline show(issues_chart) else: # Server (using internal server IP, rather than localhost or external) session = bokeh.session.Session(root_url=BOKEH_SERVER_IP, load_from_config=False) output_server("ddod_chart", session=session) show(issues_chart)
def plot_average_dts(df, hours): lasti = 0 tmp = 0 tmplist = [] ### Currently using a fixed method timeset, if there is a better way to do a log loop this could be changed. ### lasti = 0 tmp = 0 tmplist = [] xlist = [] for i in range(1,10): tmp = 0 for item in df['noao_time']: if item > lasti and item < i: tmp = tmp + 1 tmplist.append(tmp) xlist.append(i) lasti = i for i in range(10,100,10): tmp = 0 for item in df['noao_time']: if item > lasti and item < i: tmp = tmp + 1 tmplist.append(tmp) xlist.append(i) lasti = i for i in range(100,1000,100): tmp = 0 for item in df['noao_time']: if item > lasti and item < i: tmp = tmp + 1 tmplist.append(tmp) xlist.append(i) lasti = i graph_info = {} graph_info['values'] = tmplist graph_info['Time in minutes'] = xlist p = Bar(graph_info, values='values', label='Time in minutes', ylabel='Number of transfers', color='navy', title='DTS time plot') p.plot_height = 500 p.plot_width = 1000 return p
def output_chart(issues_df,output_mode='static'): import datetime import bokeh from bokeh.models import HoverTool # Add timestamp to title issues_chart = Bar(issues_df, label='value_delivered', values='status', agg='count', stack='status', title=ISSUES_TITLE+" (Updated "+datetime.datetime.now().strftime('%m/%d/%Y')+")", xlabel="Value Delivered",ylabel="Number of Use Cases", legend='top_right', tools='hover', color=brewer["GnBu"][3] ) issues_chart.plot_width = DESTINATION_FRAME_WIDTH - (HTML_BODY_MARGIN * 2) issues_chart.plot_height = DESTINATION_FRAME_HEIGHT - (HTML_BODY_MARGIN * 2) issues_chart.logo = None issues_chart.toolbar_location = None hover = issues_chart.select(dict(type=HoverTool)) hover.tooltips = [ ("Value Delivered", "$x")] #--- Configure output --- reset_output() if output_mode == 'static': # Static file. CDN is most space efficient output_file(ISSUES_FILE, title=ISSUES_TITLE, autosave=False, mode='cdn', root_dir=None ) # Generate file save(issues_chart,filename=ISSUES_FILE) elif output_mode == 'notebook': output_notebook() # Show inline show(issues_chart) else: # Server (using internal server IP, rather than localhost or external) session = bokeh.session.Session(root_url = BOKEH_SERVER_IP, load_from_config=False) output_server("ddod_chart", session=session) show(issues_chart)
def generate_single_bar(df, time_str, color_dict, colors): df = df[df.percent_total >= 3] title = "Failure Rate " + time_str fill = [color_dict[model_key] if model_key in color_dict else 'grey' for model_key in df.model] source = ColumnDataSource(dict(color=[c for c in df['color']], model=[m for m in df['model']], failure_rate=[f for f in df['failure_rate']], count=[co for co in df['count']])) plot = Bar(df, 'model', values='failure_rate', title=title, source=source, tools=['hover'],color='color', legend=None) # outline_line_color="color", border_fill_color='color', hover = plot.select(dict(type=HoverTool)) hover.tooltips = [ ("Model ", "@model"), ("Failure rate ", "@y"), ("Number of drives", "@count") #("Time ", "@timeline"), ] hover.mode = 'mouse' plot.xaxis.axis_label = 'Model Serial Number' plot.yaxis.axis_label = 'Naive Failure Rate' plot.title_text_font_size="18px" plot.grid.grid_line_alpha = 0 plot.ygrid.grid_line_color = None plot.toolbar.logo = None plot.outline_line_width = 0 plot.outline_line_color = "white" plot.plot_height = 600 plot.plot_width = 800 plot.xaxis.major_tick_line_color = None plot.yaxis.major_tick_line_color = None plot.xaxis.axis_line_width = 2 plot.yaxis.axis_line_width = 2 plot.title.text_font_size = '16pt' plot.xaxis.axis_label_text_font_size = "14pt" plot.xaxis.major_label_text_font_size = "14pt" plot.yaxis.axis_label_text_font_size = "14pt" plot.yaxis.major_label_text_font_size = "14pt" return(plot)