def modify_doc(): def make_dataset(range_start=-60, range_end=120, bin_width=2): by_code_pos = pd.DataFrame( columns=['mortality_change', 'state', 'cause']) by_code_neg = pd.DataFrame( columns=['mortality_change', 'state', 'cause']) data_gender = full_data[full_data['sex'] == "Both"] for state in state_select_down: pos_perc_change = [] neg_perc_change = [] cause_pos_name = [] cause_neg_name = [] len_pos = 0 len_neg = 0 for cause in cause_select_down: data_state = data_gender[data_gender['location_name'] == state] data_cause = data_state[data_state['cause_name'] == cause] subset = data_cause[data_cause['year_id'] == 1980] mortality_1980 = subset['mx'].astype(float) mortality_1980 = mortality_1980.values[0] subset = data_cause[data_cause['year_id'] == 2014] mortality_2014 = subset['mx'].astype(float) mortality_2014 = mortality_2014.values[0] perc_change = ( (mortality_2014 - mortality_1980) / mortality_1980) * 100 if perc_change <= 0: arr_df_neg = pd.DataFrame( {'mortality_change': subset['mx']}) arr_df_neg['mortality_change'] = perc_change * (-1) arr_df_neg['state'] = state arr_df_neg['cause'] = cause by_code_neg = by_code_neg.append(arr_df_neg) else: arr_df_pos = pd.DataFrame( {'mortality_change': subset['mx']}) arr_df_pos['mortality_change'] = perc_change arr_df_pos['state'] = state arr_df_pos['cause'] = cause by_code_pos = by_code_pos.append(arr_df_pos) return by_code_pos, ColumnDataSource( by_code_pos), by_code_neg, ColumnDataSource(by_code_neg) def make_plot(df, src): mapper = LinearColorMapper(palette=colors_list, low=df.mortality_change.min(), high=df.mortality_change.max()) heat_map = figure(plot_height=500, plot_width=1000, x_range=state_select_down, y_range=cause_select_down) heat_map.rect(x="state", y="cause", source=src, width=1, height=1, line_color=None, fill_color=transform('mortality_change', mapper)) color_bar = ColorBar(color_mapper=mapper, location=(0, 0)) heat_map.add_layout(color_bar, 'right') heat_map.axis.axis_line_color = None heat_map.axis.major_tick_line_color = None heat_map.axis.major_label_text_font_size = "5pt" heat_map.axis.major_label_standoff = 0 heat_map.xaxis.major_label_orientation = 1.0 heat_map.xaxis.major_label_orientation = math.pi / 2 heat_map.xaxis.axis_label = "State" heat_map.yaxis.axis_label = "Cause" hover_bar = HoverTool(tooltips=[('State', '@state'), ( 'Cause', '@cause'), ('Mortality Rate Change', '@mortality_change')]) heat_map.add_tools(hover_bar) return heat_map df_pos, src_pos, df_neg, src_neg = make_dataset() heat_map_pos = make_plot(df_pos, src_pos) title_pos = Title() title_pos.align = "center" title_pos.text = "Figure 2(a). Causes having positive change in Mortality Rates between 1980 and 2014" title_pos.vertical_align = 'bottom' heat_map_pos.title = title_pos heat_map_neg = make_plot(df_neg, src_neg) title_neg = Title() title_neg.align = "center" title_neg.text = "Figure 2(b). Causes having negative change in Mortality Rates between 1980 and 2014" title_neg.vertical_align = 'bottom' heat_map_neg.title = title_neg return column(heat_map_pos, heat_map_neg)
def plot_violin( ax, plotters, figsize, rows, cols, sharex, sharey, shade_kwargs, shade, rug, rug_kwargs, bw, textsize, circular, hdi_prob, quartiles, backend_kwargs, show, ): """Bokeh violin plot.""" if backend_kwargs is None: backend_kwargs = {} backend_kwargs = { **backend_kwarg_defaults(("dpi", "plot.bokeh.figure.dpi"), ), **backend_kwargs, } (figsize, *_, linewidth, _) = _scale_fig_size(figsize, textsize, rows, cols) shade_kwargs = {} if shade_kwargs is None else shade_kwargs rug_kwargs = {} if rug_kwargs is None else rug_kwargs rug_kwargs.setdefault("fill_alpha", 0.1) rug_kwargs.setdefault("line_alpha", 0.1) if ax is None: ax = create_axes_grid( len(plotters), rows, cols, sharex=sharex, sharey=sharey, figsize=figsize, backend_kwargs=backend_kwargs, ) else: ax = np.atleast_2d(ax) current_col = 0 for (var_name, selection, x), ax_ in zip(plotters, (item for item in ax.flatten() if item is not None)): val = x.flatten() if val[0].dtype.kind == "i": dens = cat_hist(val, rug, shade, ax_, **shade_kwargs) else: dens = _violinplot(val, rug, shade, bw, circular, ax_, **shade_kwargs) if rug: rug_x = -np.abs( np.random.normal(scale=max(dens) / 3.5, size=len(val))) ax_.scatter(rug_x, val, **rug_kwargs) per = np.nanpercentile(val, [25, 75, 50]) hdi_probs = hdi(val, hdi_prob, multimodal=False, skipna=True) if quartiles: ax_.line([0, 0], per[:2], line_width=linewidth * 3, line_color="black", line_cap="round") ax_.line([0, 0], hdi_probs, line_width=linewidth, line_color="black", line_cap="round") ax_.circle( 0, per[-1], line_color="white", fill_color="white", size=linewidth * 1.5, line_width=linewidth, ) _title = Title() _title.align = "center" _title.text = make_label(var_name, selection) ax_.title = _title ax_.xaxis.major_tick_line_color = None ax_.xaxis.minor_tick_line_color = None ax_.xaxis.major_label_text_font_size = "0pt" if current_col != 0: ax_.xaxis.major_label_text_font_size = "0pt" ax_.yaxis.major_label_text_font_size = "0pt" ax_.yaxis.major_tick_line_color = None ax_.yaxis.minor_tick_line_color = None ax_.yaxis.axis_line_color = None current_col += 1 if current_col == cols: current_col = 0 show_layout(ax, show) return ax
df = data.DataReader( name='amzn', data_source='yahoo', start=start, end=end) #The analyzed entity is Amazon,in the last 6 months p = figure(x_axis_type='datetime', width=1000, height=300, sizing_mode="scale_width") t = Title() t.text = "Candlestick Chart" p.title = t p.grid.grid_line_alpha = 0.6 t.text_font_size = "24pt" # defining the css of the title t.align = "center" date_increase = df.index[df.Close > df.Open] date_decrease = df.index[df.Close < df.Open] p.segment(df.index, df.High, df.index, df.Low, color="black") p.rect(date_increase, (df.Close + df.Open) / 2, hours_12, abs(df.Open - df.Close), fill_color="green", line_color="black") p.rect(date_decrease, (df.Close + df.Open) / 2, hours_12, abs(df.Open - df.Close), fill_color="red", line_color="black") output_file("CS.html") show(p)