Exemplo n.º 1
0
    def bar_stack(self):
        plot = Bar_Stack(colours=['#C4D318', '#50284A', '#7D7B6A'])
        plot.set_tooltip(
            'X label [#x_label#], Value [#val#]<br>Total [#total#]')
        plot.append_keys('#C4D318', 'job1', 13)
        plot.append_keys('#50284A', 'job2', 13)
        plot.append_keys('#7D7B6A', 'job3', 13)
        plot.append_keys('#ff0000', 'job4', 13)
        plot.append_keys('#ff00ff', 'job5', 13)

        plot.append_stack([2.5, 5, 2.5])
        plot.append_stack([2.5, 5, 1.25, 1.25])
        plot.append_stack([5, bar_stack_value(5, '#ff0000')])
        plot.append_stack([2, 2, 2, 2, bar_stack_value(2, '#ff00ff')])

        chart = openFlashChart.template(
            "Bar_Stack chart",
            style='{font-size: 20px; color: #F24062; text-align: center;}')
        chart.set_tooltip(behaviour='hover')
        chart.set_x_axis(labels=x_axis_labels(
            labels=['Winter', 'Spring', 'Summer', 'Autumn']))
        chart.set_y_axis(min=0, max=14, steps=2)
        chart.add_element(plot)

        return chart.encode()
Exemplo n.º 2
0
def _stacked_bars_graph(env, key, x_axis, query=None, title=None):
    ticket_stats, keys = _get_stacked_bar_chart_stats(env, key, x_axis, query)

    plot = Bar_Stack()

    # Add the keys to the plot
    key_colours = {}
    for i, key_value in enumerate(keys):
        key_colours[key_value] = COLOURS[i]
        if key:
            plot.append_keys(COLOURS[i], key_value, 13)

    for x_axis_value, tickets_per_key in ticket_stats.iteritems():
        stack = []
        for i, (key_value,
                number_of_tickets) in enumerate(tickets_per_key.iteritems()):
            stack.append(
                bar_stack_value(number_of_tickets, key_colours[key_value],
                                _get_stacked_bar_tooltip(key, key_value)))
        plot.append_stack(stack)

    chart_div_id = _create_chart_div_id()
    on_click_function_name = 'on_click_%s' % (chart_div_id, )
    plot['on-click'] = on_click_function_name
    plot['on-click-text'] = '#key#'

    if title is None:
        key_string = ''
        if key:
            key_string = ' and %s' % (key, )
        title = 'Tickets by %s%s' % (x_axis, key_string)

    chart = _create_chart(title, plot)
    if ticket_stats.keys():
        chart.set_x_axis(
            labels=x_axis_labels(labels=ticket_stats.keys(), size=13))
        chart.set_y_axis(min=0, max=_get_stacked_bar_max_y_value(ticket_stats))

    return chart, chart_div_id, \
           _create_stacked_bar_on_click_html(env, key, x_axis, ticket_stats,
                                             query, on_click_function_name)