Пример #1
0
def generate_chart(event):
    data = get_data(TIMED_EVENTS[event])

    # Bokeh doesn't let me control the order of the grouping! This is
    # frustrating since it will be different on every server launch
    barchart = Bar(data,
                   values='percentage_dnf',
                   label='year',
                   color="FireBrick",
                   xgrid=False,
                   ygrid=False,
                   plot_width=800,
                   plot_height=500,
                   tools="pan,wheel_zoom,box_zoom,reset,resize")

    barchart.title = "Formula SAE Michigan DNFs - " + event

    barchart._xaxis.axis_label = "Year"
    barchart._xaxis.axis_line_color = None
    barchart._xaxis.major_tick_line_color = None
    barchart._xaxis.minor_tick_line_color = None

    barchart._yaxis.axis_label = "Percentage DNF"
    barchart._yaxis.axis_line_color = None
    barchart._yaxis.major_tick_line_color = None
    barchart._yaxis.minor_tick_line_color = None
    barchart._yaxis.formatter = NumeralTickFormatter(format="0%")
    barchart.y_range = Range1d(0, 1)

    barchart.outline_line_color = None

    barchart.toolbar_location = 'right'

    barchart.logo = None

    for renderer in barchart.select(GlyphRenderer):
        if renderer.data_source.data['height'] != [0]:
            year = renderer.data_source.data['year']
            num_dnf = data['dnfs'].loc[data['year'] == year]
            num_entries = data['entries'].loc[data['year'] == year]
            percent_dnf = data['percentage_dnf'].loc[data['year'] == year]
            hover = HoverTool(renderers=[renderer],
                              tooltips=[
                                  ("# DNFs", '%d' % num_dnf.values[0]),
                                  ("# Entries", '%d' % num_entries.values[0]),
                                  ("% DNF",
                                   '%.2f%%' % (100 * percent_dnf.values[0]))
                              ])
            barchart.add_tools(hover)

    return barchart
Пример #2
0
def generate_chart(team):
    data = generate_data(team)
    selectable_years = list(map(str, data.index.unique()))

    # Generate the chart UNFORTUNATELY using the high level plots. Streaming
    # a bunch of quads resulted in lots of graphics corruption when switching
    # teams. I would rather have the plots work all the time but really slow
    # then have the plot show the wrong information.
    barchart = Bar(data,
                   values=blend(*SCORED_EVENTS, labels_name='event'),
                   label=cat(columns='Year', sort=False),
                   stack=cat(columns='event', sort=False),
                   color=color(columns='event', palette=Spectral9, sort=False),
                   xgrid=False, ygrid=False,
                   plot_width=1000, plot_height=625,
                   tools="pan,wheel_zoom,box_zoom,reset,resize")

    barchart.title = "Formula SAE Michigan - " + team

    barchart._xaxis.axis_label = "Teams"
    barchart._xaxis.axis_line_color = None
    barchart._xaxis.major_tick_line_color = None
    barchart._xaxis.minor_tick_line_color = None

    barchart._yaxis.axis_label = "Total Score"
    barchart._yaxis.axis_line_color = None
    barchart._yaxis.major_tick_line_color = None
    barchart._yaxis.minor_tick_line_color = None

    barchart.outline_line_color = None

    barchart.toolbar_location = 'right'

    barchart.logo = None

    # Hacky tooltips
    for renderer in barchart.select(GlyphRenderer):
        if renderer.data_source.data['height'] != [0]:
            year = renderer.data_source.data['Year']
            place = data['Place'].loc[data['Year'] == year]
            score = data['Total Score'].loc[data['Year'] == year]
            hover = HoverTool(renderers=[renderer],
                              tooltips=[("Year", '@Year'),
                                        ("Selection", '@event'),
                                        ("Event Score", '@height'),
                                        ("Total Score", '%.2f' % score.values[0]),
                                        ("Overall Place", '%d' % place.values[0])])
            barchart.add_tools(hover)

    return barchart
Пример #3
0
def plotG(data, ttl):
    fig = Bar(data,
              label=CatAttr(columns=['Group'], sort=False),
              values='Height',
              group='Spec',
              legend=True,
              plot_width=1000,
              plot_height=600,
              title=ttl,
              ylabel='MiB/s')
    fig.title.text_font_size = '18pt'
    # Show value in img
    fig.add_tools(HoverTool())
    hover = fig.select(dict(type=HoverTool))
    hover.tooltips = [('Spec', ' $x'), ('MiB/s', ' @height')]
    return fig
Пример #4
0
def generate_chart(event):
    data = get_data(TIMED_EVENTS[event])

    # Bokeh doesn't let me control the order of the grouping! This is
    # frustrating since it will be different on every server launch
    barchart = Bar(data,
                   values='percentage_dnf',
                   label='year',
                   color="FireBrick",
                   xgrid=False, ygrid=False,
                   plot_width=800, plot_height=500,
                   tools="pan,wheel_zoom,box_zoom,reset,resize")

    barchart.title = "Formula SAE Michigan DNFs - " + event

    barchart._xaxis.axis_label = "Year"
    barchart._xaxis.axis_line_color = None
    barchart._xaxis.major_tick_line_color = None
    barchart._xaxis.minor_tick_line_color = None

    barchart._yaxis.axis_label = "Percentage DNF"
    barchart._yaxis.axis_line_color = None
    barchart._yaxis.major_tick_line_color = None
    barchart._yaxis.minor_tick_line_color = None
    barchart._yaxis.formatter = NumeralTickFormatter(format="0%")
    barchart.y_range = Range1d(0, 1)

    barchart.outline_line_color = None

    barchart.toolbar_location = 'right'

    barchart.logo = None

    for renderer in barchart.select(GlyphRenderer):
        if renderer.data_source.data['height'] != [0]:
            year = renderer.data_source.data['year']
            num_dnf = data['dnfs'].loc[data['year'] == year]
            num_entries = data['entries'].loc[data['year'] == year]
            percent_dnf = data['percentage_dnf'].loc[data['year'] == year]
            hover = HoverTool(renderers=[renderer],
                              tooltips=[("# DNFs", '%d' % num_dnf.values[0]),
                                        ("# Entries", '%d' % num_entries.values[0]),
                                        ("% DNF", '%.2f%%' % (100 * percent_dnf.values[0]))])
            barchart.add_tools(hover)
    

    return barchart
Пример #5
0
def generate_chart(year):
    data = get_data(year)

    plot_data = {
        'country': data.index.tolist(),
        'count': [float(i) for i in data.values.tolist()]
    }

    barchart = Bar(plot_data,
                   label='country',
                   values='count',
                   color="red",
                   xgrid=False,
                   ygrid=False,
                   plot_width=800,
                   plot_height=500,
                   tools="pan,wheel_zoom,box_zoom,reset,resize")

    barchart.title = "Formula SAE Michigan " + year + " Countries"

    barchart.x_range = FactorRange(factors=data.index.tolist())

    barchart._xaxis.axis_label = "Country"
    barchart._xaxis.axis_line_color = None
    barchart._xaxis.major_tick_line_color = None
    barchart._xaxis.minor_tick_line_color = None

    barchart._yaxis.axis_label = "Number of Teams"
    barchart._yaxis.axis_line_color = None
    barchart._yaxis.major_tick_line_color = None
    barchart._yaxis.minor_tick_line_color = None

    barchart.outline_line_color = None

    barchart.toolbar_location = 'right'

    barchart.logo = None

    hover = HoverTool(tooltips=[("Country", '@x'), ("# Teams", '@height')])

    barchart.add_tools(hover)

    return barchart
Пример #6
0
def generate_chart(year):
    data = get_data(year)

    plot_data = {'country': data.index.tolist(),
                 'count': [float(i) for i in data.values.tolist()]}

    barchart = Bar(plot_data,
                   label='country',
                   values='count',
                   color="red",
                   xgrid=False, ygrid=False,
                   plot_width=800, plot_height=500,
                   tools="pan,wheel_zoom,box_zoom,reset,resize")

    barchart.title = "Formula SAE Michigan " + year + " Countries"

    barchart.x_range = FactorRange(factors=data.index.tolist())

    barchart._xaxis.axis_label = "Country"
    barchart._xaxis.axis_line_color = None
    barchart._xaxis.major_tick_line_color = None
    barchart._xaxis.minor_tick_line_color = None

    barchart._yaxis.axis_label = "Number of Teams"
    barchart._yaxis.axis_line_color = None
    barchart._yaxis.major_tick_line_color = None
    barchart._yaxis.minor_tick_line_color = None

    barchart.outline_line_color = None

    barchart.toolbar_location = 'right'

    barchart.logo = None

    hover = HoverTool(tooltips=[("Country", '@x'),
                                ("# Teams", '@height')])

    barchart.add_tools(hover)

    return barchart
Пример #7
0
def generate_chart():
    data = get_data()

    # Bokeh doesn't let me control the order of the grouping! This is
    # frustrating since it will be different on every server launch
    barchart = Bar(data,
                   label='year',
                   values='count',
                   group=cat(columns='size', ascending=True, sort=True),
                   color=color(columns='size', palette=Spectral4),
                   legend='top_left',
                   xgrid=False,
                   ygrid=False,
                   plot_width=800,
                   plot_height=500,
                   tools="pan,wheel_zoom,box_zoom,reset,resize")

    barchart.title = "Formula SAE Michigan Engine Cylinders"

    barchart._xaxis.axis_label = "Year"
    barchart._xaxis.axis_line_color = None
    barchart._xaxis.major_tick_line_color = None
    barchart._xaxis.minor_tick_line_color = None

    barchart._yaxis.axis_label = "Frequency"
    barchart._yaxis.axis_line_color = None
    barchart._yaxis.major_tick_line_color = None
    barchart._yaxis.minor_tick_line_color = None

    barchart.outline_line_color = None

    barchart.toolbar_location = 'right'

    barchart.logo = None

    hover = HoverTool(tooltips=[("Engine", '@size'), ("# Teams", '@height')])

    barchart.add_tools(hover)

    return barchart
Пример #8
0
def generate_chart():
    data = get_data()

    # Bokeh doesn't let me control the order of the grouping! This is
    # frustrating since it will be different on every server launch
    barchart = Bar(data,
                   label='year',
                   values='count',
                   group=cat(columns='size', ascending=True, sort=True),
                   color=color(columns='size', palette=Spectral4),
                   legend='top_left',
                   xgrid=False, ygrid=False,
                   plot_width=800, plot_height=500,
                   tools="pan,wheel_zoom,box_zoom,reset,resize")

    barchart.title = "Formula SAE Michigan Engine Cylinders"

    barchart._xaxis.axis_label = "Year"
    barchart._xaxis.axis_line_color = None
    barchart._xaxis.major_tick_line_color = None
    barchart._xaxis.minor_tick_line_color = None

    barchart._yaxis.axis_label = "Frequency"
    barchart._yaxis.axis_line_color = None
    barchart._yaxis.major_tick_line_color = None
    barchart._yaxis.minor_tick_line_color = None

    barchart.outline_line_color = None

    barchart.toolbar_location = 'right'

    barchart.logo = None
    
    hover = HoverTool(tooltips=[("Engine", '@size'),
                                ("# Teams", '@height')])

    barchart.add_tools(hover)

    return barchart