Exemple #1
0
def graph():
    _charts = [
        pygal.Line(),
        pygal.Bar(),
        pygal.Histogram(),
        pygal.XY(),
        pygal.Pie(),
        pygal.Radar(),
        pygal.Box(),
        pygal.Dot(),
        pygal.Funnel(),
        pygal.SolidGauge(),
        pygal.Gauge(),
        pygal.Pyramid(),
        pygal.Treemap()
    ]
    charts = []
    for chart in _charts:
        chart.title = '% Change Coolness of programming languages over time.'
        chart.x_labels = ['2011', '2012', '2013', '2014', '2015', '2016']
        chart.add('Python', [15, 31, 89, 200, 356, 900])
        chart.add('Java', [15, 45, 76, 80, 91, 95])
        chart.add('C++', [5, 51, 54, 102, 150, 201])
        chart.add('All others combined!', [5, 15, 21, 55, 92, 105])
        charts.append(chart.render_data_uri())
    return render_template('part2/graph.html',
                           charts=charts,
                           root_path=root_path)
Exemple #2
0
def create_graph(data, graph_type='hbar', title=''):
    graph = None
    if graph_type == 'hbar':
        graph = pygal.HorizontalBar()
    elif graph_type == 'pie':
        graph = pygal.Pie()
    elif graph_type == 'gauge':
        graph = pygal.Gauge()
        graph.range = [100,200]
    elif graph_type == 'line':
        graph = pygal.Line()

    graph.title = title
    data_hash = base64.urlsafe_b64encode(md5(str(data)).digest())

    if graph_type == 'line':
        graph.add('dB over time', data)
    else:
        for key, num in data:
            graph.add(key, num)

    filename = data_hash + '.png'
    graph.render_to_png(filename)
    try:
        return send_file(filename, mimetype='image/png')
    finally:
        os.remove(filename)
Exemple #3
0
def draws(title, arg1, arg2, val1, val2, ):
    pie_chart = pygal.Gauge(human_readable=True, style = custom_style2)
    pie_chart.title = title
    pie_chart.range = [20, 30]
    pie_chart.add(arg1, val1)
    pie_chart.add(arg2, val2)
    return pie_chart.render_data_uri()
def gauge_chart():
    gauge = pygal.Gauge(human_readable=True)
    gauge.title = 'GAUGE CHART TEST'
    gauge.range = [0, 200]
    data = get_random_data(5)
    for i in data:
        gauge.add('Tar {}'.format(i), i)
    gauge.render_to_file(get_file_name(inspect.stack()[0][3]))
Exemple #5
0
def gauge():
    gauge_chart = py.Gauge(human_readable=True)
    gauge_chart.title = 'DeltaBlue V8 benchmark results'
    gauge_chart.range = [0, 10000]
    gauge_chart.add('Chrome', 8212)
    gauge_chart.add('Firefox', 8099)
    gauge_chart.add('Opera', 2933)
    gauge_chart.add('IE', 41)
    return Response(response=gauge_chart.render(),
                    content_type='image/svg+xml')
Exemple #6
0
def Gauge():
    try:
        gauge_chart = pygal.Gauge()
        gauge_chart.title = 'DeltaBlue V8 benchmark results'
        gauge_chart.range = [0, 10000]
        gauge_chart.add('Chrome', 8212)
        gauge_chart.add('Firefox', 8099)
        gauge_chart.add('Opera', 2933)
        gauge_chart.add('IE', 41)
        graph_data = gauge_chart.render_data_uri()
        return render_template("graphing.html", graph_data=graph_data)
    except Exception as e:
        return (str(e))
Exemple #7
0
def stats_industry(stat):
    current_app.logger.info(stat)
    try:
        gauge_chart = pygal.Gauge(human_readable=True)
        gauge_chart.title = 'Industry benchmark - results'
        gauge_chart.range = [0, 100]
        gauge_chart.add('Pharma %', 82)
        gauge_chart.add('Engineering %', 69)
        gauge_chart.add('Media %', 29)
        gauge_chart.add('Travel %', 41)
        gauge_chart.render()
        return gauge_chart.render_response()
    except TemplateNotFound:
        abort(404)
Exemple #8
0
def stats(stat):
    current_app.logger.info(stat)
    try:
        gauge_chart = pygal.Gauge(human_readable=True)
        gauge_chart.title = 'DeltaBlue V8 benchmark results'
        gauge_chart.range = [0, 10000]
        gauge_chart.add('Chrome', 8212)
        gauge_chart.add('Firefox', 8099)
        gauge_chart.add('Opera', 2933)
        gauge_chart.add('IE', 41)
        gauge_chart.render()
        return gauge_chart.render_response()
    except TemplateNotFound:
        abort(404)
Exemple #9
0
def make_readability_gauge(doc):
    '''Takes a document and creates an svg file called reada_gauge'''
    gauge = pygal.Gauge()
    gauge.title = 'Flesch Reading Ease Score'
    gauge.range = [0, 100]
    gauge.add('Your writing',
              get_readability_stats(doc)['flesch_readability_ease'])
    gauge.add('Very easy to read', 100)
    gauge.add('Average readability', 65)
    gauge.add('A little hard to read', 35)
    gauge.add('Very hard to read', 0)
    gauge.render_to_file('./kojak_flask/static/reada_gauge.svg',
                         needle_width=1 / 10,
                         human_readable=True)
    return
Exemple #10
0
# -*- coding: utf-8 -*-
import pygal

gauge_chart = pygal.Gauge(human_readable=True)
gauge_chart.title = 'Speed of space shuttle during takeoff'
gauge_chart.x_labels = ['Pre-takeoff', '5 min', ' 10 min', '15 min', '20 min']
gauge_chart.add('Pre-takeoff', 0)
gauge_chart.add('5 min', 96)
gauge_chart.add('10 min', 167)
gauge_chart.add('15 min', 249)
gauge_chart.add('20 min', 339)

gauge_chart.render_to_file('gauge_chart.svg')
Exemple #11
0
def show_temperature(weather, name):
    gauge_chart = pygal.Gauge(human_readable=True, style=custom_style)
    gauge_chart.title = 'Current temperature'
    gauge_chart.range = [0, 35]
    gauge_chart.add('temperature', weather['currently']['temperature'])
    return gauge_chart.render_to_file('./svg/' + name + '.svg')
def charts():
    """ Recipe ingredients statistics by cuisine """

    dot_chart = pygal.Dot(x_label_rotation=30,
                          print_values=False,
                          show_legend=False,
                          style=pygal.style.styles['default'](
                              value_font_size=30,
                              title_font_size=30,
                              legend_font_size=30,
                              dots_size=3000,
                              background='transparent',
                              tooltip_font_size=30,
                              label_font_size=22))
    dot_chart.title = 'Recipe Ingredients Statistics by Cuisine'
    dot_chart.y_title = 'Recipes by cuisine'
    dot_chart.x_labels = [
        'milk', 'egg', 'sugar', 'flour', 'salt', 'water', 'garlic', 'vanilla',
        'butter'
    ]
    dot_chart.y_labels = [
        'French - 4', 'Mexican - 2', 'Greek - 2', 'English - 2', 'Asian - 4',
        'Indian - 3', 'Irish - 2', 'Italian - 5'
    ]
    dot_chart.add('French', French_val)
    dot_chart.add('Mexican', Mexican_val)
    dot_chart.add('Greek', Greek_val)
    dot_chart.add('English', English_val)
    dot_chart.add('Asian', Asian_val)
    dot_chart.add('Indian', Indian_val)
    dot_chart.add('Irish', Irish_val)
    dot_chart.add('Italian', Italian_val)
    dot_chart = dot_chart.render_data_uri()
    """ Recipe allergens statistics (in %) """

    solid_gauge_chart = pygal.SolidGauge(inner_radius=0.70,
                                         style=pygal.style.styles['default'](
                                             value_font_size=25,
                                             title_font_size=30,
                                             legend_font_size=30,
                                             background='transparent',
                                             tooltip_font_size=30))
    solid_gauge_chart.title = 'Recipe Allergens Statistics (in %)'
    percent_formatter = lambda x: '{:.10g}%'.format(x)
    solid_gauge_chart.value_formatter = percent_formatter

    solid_gauge_chart.add('Egg', [{'value': 37.5, 'max_value': 100}])
    solid_gauge_chart.add('Milk', [{'value': 8.33, 'max_value': 100}])
    solid_gauge_chart.add('Nuts', [{'value': 4.16, 'max_value': 100}])
    solid_gauge_chart.add('Garlic', [{'value': 41.66, 'max_value': 100}])
    solid_gauge_chart.add('No allergens', [{'value': 25, 'max_value': 100}])
    solid_gauge_chart = solid_gauge_chart.render_data_uri()
    """ Average calories by cuisine """

    gauge_chart = pygal.Gauge(human_readable=True,
                              style=pygal.style.styles['default'](
                                  value_font_size=30,
                                  title_font_size=30,
                                  legend_font_size=30,
                                  background='transparent',
                                  tooltip_font_size=30,
                                  label_font_size=25))
    gauge_chart.title = 'Average calories by cuisine'
    gauge_chart.range = [0, 1000]
    gauge_chart.add('French', 393.5)
    gauge_chart.add('Mexican', 296)
    gauge_chart.add('Greek', 599)
    gauge_chart.add('English', 476)
    gauge_chart.add('Asian', 292)
    gauge_chart.add('Indian', 204.66)
    gauge_chart.add('Irish', 413.5)
    gauge_chart.add('All', 344.91)
    gauge_chart = gauge_chart.render_data_uri()
    return render_template('statistics.html',
                           dot_chart=dot_chart,
                           solid_gauge_chart=solid_gauge_chart,
                           gauge_chart=gauge_chart)
Exemple #13
0
#                                                                       #
# This program is protected by copyright laws.                          #
#                                                                       #
# Program Name:                                                         #
#                                                                       #
# <br>Date:                                                             #
#########################################################################
import pygal

# 准备数据
data = [
    0.16881, 0.14966, 0.07471, 0.06992, 0.04762, 0.03541, 0.02925, 0.02411,
    0.02316, 0.01409, 0.36326
]
# 准备标签
labels = [
    'Java', 'C', 'C++', 'Python', 'Visual Basic .NET', 'C#', 'PHP',
    'JavaScript', 'SQL', 'Assembly langugage', '其他'
]
# 创建pygal.Gauge对象(仪表图)
gauge = pygal.Gauge()
gauge.range = [0, 1]
# 采用循环为仪表图添加数据
for i, per in enumerate(data):
    gauge.add(labels[i], per)
gauge.title = '2018年8月编程语言'
# 设置将图例放在底部
gauge.legend_at_bottom = True
# 指定将数据图输出到SVG文件中
gauge.render_to_file('language_percent.svg')
Exemple #14
0
def main():
    firstTest = True
    gauge_chart = pygal.Gauge(human_readable=True)

    mainkWhConstant = myFunction("Main (kWh)")
    if mainkWhConstant == '' or mainkWhConstant is None:
        mainkWhConstant = 0
    mainkWhConstant = int(mainkWhConstant)

    gymkWhConstant = myFunction("DG (kWh)")
    if gymkWhConstant == '' or gymkWhConstant is None:
        gymkWhConstant = 0
    gymkWhConstant = int(gymkWhConstant)

    kitchenkWhConstant = myFunction("DE (kWh)")
    if kitchenkWhConstant == '' or kitchenkWhConstant is None:
        kitchenkWhConstant = 0
    kitchenkWhConstant = int(kitchenkWhConstant)

    collinscenterkWhConstant = myFunction("AMDP (kWh)")
    if collinscenterkWhConstant == '' or collinscenterkWhConstant is None:
        collinscenterkWhConstant = 0
    collinscenterkWhConstant = int(collinscenterkWhConstant)

    six = False
    seven = False
    eight = False
    nine = False
    ten = False
    eleven = False
    twelve = False
    one = False
    two = False
    three = False
    gauge_chart.title = 'Electricity used hourly in kWh all of ahs'
    gauge_chart.range = [0, 7000]
    try:

        percent_formatter = lambda x: '{:.10g}%'.format(x)
        dollar_formatter = lambda x: '{:.10g}$'.format(x)
        kW_formatter = lambda x: '{:.10g}kW'.format(x)
        kWh_formatter = lambda x: '{:.10g}kWh'.format(x)
        while True:

            currentDT = datetime.datetime.now()
            currentDT2 = datetime.date.today()

            mainkW = myFunction("Main (kW)")
            if mainkW == '' or mainkW is None:
                mainkW = 0
            mainkW = int(mainkW)

            mainkWh = myFunction("Main (kWh)")
            if mainkWh == '' or mainkWh is None:
                mainkWh = 0
            mainkWh = int(mainkWh)
            mainkWh = mainkWh - mainkWhConstant

            gymkW = myFunction("DG (kW)")
            if gymkW == '' or gymkW is None:
                gymkW = 0
            gymkW = int(gymkW)

            gymkWh = myFunction("DG (kWh)")
            if gymkWh == '' or gymkWh is None:
                gymkWh = 0
            gymkWh = int(gymkWh)
            gymkWh = gymkWh - gymkWhConstant

            kitchenkW = myFunction("DE (kW)")
            if kitchenkW == '' or kitchenkW is None:
                kitchenkW = 0
            kitchenkW = int(kitchenkW)

            kitchenkWh = myFunction("DE (kWh)")
            if kitchenkWh == '' or kitchenkWh is None:
                kitchenkWh = 0
            kitchenkWh = int(kitchenkWh)
            kitchenkWh = kitchenkWh - kitchenkWhConstant

            collinscenterkW = myFunction("AMDP (kW)")
            if collinscenterkW == '' or collinscenterkW is None:
                collinscenterkW = 0
            collinscenterkW = int(collinscenterkW)

            collinscenterkWh = myFunction("AMDP (kWh)")
            if collinscenterkWh == '' or collinscenterkWh is None:
                collinscenterkWh = 0
            collinscenterkWh = int(collinscenterkWh)
            collinscenterkWh = collinscenterkWh - collinscenterkWhConstant

            kW = pygal.SolidGauge(
                half_pie=True, inner_radius=0.70,
                style=pygal.style.styles['default'](value_font_size=10))
            kW.add('AHS MAIN aka all of AHS', [{'value': mainkW, 'max_value': 750}],
                   formatter=kW_formatter)
            kW.add('AHS GYM', [{'value': gymkW, 'max_value': 200}],
                   formatter=kW_formatter)
            kW.add('AHS COLLINS CENTER', [{'value': collinscenterkW, 'max_value': 250}],
                   formatter=kW_formatter)
            kW.add('AHS KITCHEN', [{'value': kitchenkW, 'max_value': 150}],
                   formatter=kW_formatter)
            kW.render_to_file("static/svg/kw.svg")

            kWh = pygal.SolidGauge(half_pie=True, inner_radius=0.70,
                                   style=pygal.style.styles['default'](value_font_size=10))
            kWh.add('AHS MAIN aka all of AHS', [{'value': mainkWh, 'max_value': 7500}],
                    formatter=kWh_formatter)
            kWh.add('AHS GYM', [{'value': gymkWh, 'max_value': 2000}],
                    formatter=kWh_formatter)
            kWh.add('AHS COLLINS CENTER', [{'value': collinscenterkWh, 'max_value': 2000}],
                    formatter=kWh_formatter)
            kWh.add('AHS KITCHEN', [{'value': kitchenkWh, 'max_value': 1700}],
                    formatter=kWh_formatter)
            kWh.render_to_file("static/svg/kwh.svg")

            dollar = pygal.SolidGauge(half_pie=True, inner_radius=0.70,
                                      style=pygal.style.styles['default'](value_font_size=10))
            dollar.add('AHS MAIN aka all of AHS', [{'value': int(mainkWh * 0.12), 'max_value': int(0.12 * 7500)}],
                       formatter=dollar_formatter)
            dollar.add('AHS GYM', [{'value': int(gymkWh * 0.12), 'max_value': int(0.12 * 2000)}],
                       formatter=dollar_formatter)
            dollar.add('AHS COLLINS CENTER', [{'value': int(0.12 * collinscenterkWh), 'max_value': int(0.12 * 2000)}],
                       formatter=dollar_formatter)
            dollar.add('AHS KITCHEN', [{'value': int(0.12 * kitchenkWh), 'max_value': int(0.12 * 1700)}],
                       formatter=dollar_formatter)
            dollar.render_to_file("static/svg/dollars.svg")

            if currentDT.hour >= 5 and currentDT.hour < 16:
                if (int(currentDT.hour) == 6) and (six == False):
                    firstTest = False;
                    six = True
                    gauge_chart.add('6 am', 0)
                    sixamkWh = myFunction("Main (kWh)")
                    if sixamkWh == '':
                        sixamkWh = myFunction("Main (kWh)")
                    sixamkWh = int(sixamkWh)
                    gauge_chart.render_to_file("static/svg/kWhHourly.svg")
                if firstTest == False:
                    if (int(currentDT.hour) == 7) and (seven == False):
                        seven = True
                        sevenamkWh = myFunction("Main (kWh)")
                        if sevenamkWh == '':
                            sevenamkWh = myFunction("Main (kWh)")
                        sevenamkWh = int(sevenamkWh)
                        gauge_chart.add('7 am', sevenamkWh - sixamkWh)

                    if (int(currentDT.hour) == 8) and (eight == False):
                        eight = True
                        eightamkWh = myFunction("Main (kWh)")
                        if eightamkWh == '':
                            eightamkWh = myFunction("Main (kWh)")
                        eightamkWh = int(eightamkWh)
                        gauge_chart.add('8 am', eightamkWh - sixamkWh)

                    if (int(currentDT.hour) == 9) and (nine == False):
                        nine = True
                        nineamkWh = myFunction("Main (kWh)")
                        if nineamkWh == '':
                            nineamkWh = myFunction("Main (kWh)")
                        nineamkWh = int(nineamkWh)
                        gauge_chart.add('9 am', nineamkWh - sixamkWh)

                    if (int(currentDT.hour) == 10) and (ten == False):
                        ten = True
                        tenamkWh = myFunction("Main (kWh)")
                        if tenamkWh == '':
                            tenamkWh = myFunction("Main (kWh)")
                        tenamkWh = int(tenamkWh)
                        gauge_chart.add('10 am', tenamkWh - sixamkWh)

                    if (int(currentDT.hour) == 11) and (eleven == False):
                        eleven = True
                        elevenamkWh = myFunction("Main (kWh)")
                        if elevenamkWh == '':
                            elevenamkWh = myFunction("Main (kWh)")
                        elevenamkWh = int(elevenamkWh)
                        gauge_chart.add('11 am', elevenamkWh - sixamkWh)

                    if (int(currentDT.hour) == 12) and (twelve == False):
                        twelve = True
                        twelvepmkWh = myFunction("Main (kWh)")
                        if twelvepmkWh == '':
                            twelvepmkWh = myFunction("Main (kWh)")
                        twelvepmkWh = int(twelvepmkWh)
                        gauge_chart.add('12 pm', twelvepmkWh - sixamkWh)

                    if (int(currentDT.hour) == 13) and (one == False):
                        one = True
                        onepmkWh = myFunction("Main (kWh)")
                        if onepmkWh == '':
                            onepmkWh = myFunction("Main (kWh)")
                        onepmkWh = int(onepmkWh)
                        gauge_chart.add('1 pm', onepmkWh - sixamkWh)

                    if (int(currentDT.hour) == 14) and (two == False):
                        two = True
                        twopmkWh = myFunction("Main (kWh)")
                        if twopmkWh == '':
                            twopmkWh = myFunction("Main (kWh)")
                        twopmkWh = int(twopmkWh)
                        gauge_chart.add('2 pm', twopmkWh - sixamkWh)

                    if (int(currentDT.hour) == 15) and (three == False):
                        three = True
                        threepmkWh = myFunction("Main (kWh)")
                        if threepmkWh == '':
                            threepmkWh = myFunction("Main (kWh)")
                        threepmkWh = int(threepmkWh)
                        gauge_chart.add('3 pm', threepmkWh - sixamkWh)
                        firstTest = True;

                    gauge_chart.render_to_file("static/svg/kWhHourly.svg")

            time.sleep(15)

            if (int(currentDT.hour) == 23):

                gauge_chart = pygal.Gauge(human_readable=True)
                try:
                    open('static/svg/kWhHourly.svg', 'w').close()
                except:
                    print("Exception")

                mainkWhConstant = myFunction("Main (kWh)")
                if mainkWhConstant == '':
                    mainkWhConstant = 0
                mainkWhConstant = int(mainkWhConstant)

                gymkWhConstant = myFunction("DG (kWh)")
                if gymkWhConstant == '':
                    gymkWhConstant = 0
                gymkWhConstant = int(gymkWhConstant)

                kitchenkWhConstant = myFunction("DE (kWh)")
                if kitchenkWhConstant == '':
                    kitchenkWhConstant = 0
                kitchenkWhConstant = int(kitchenkWhConstant)

                collinscenterkWhConstant = myFunction("AMDP (kWh)")
                if collinscenterkWhConstant == '':
                    collinscenterkWhConstant = 0
                collinscenterkWhConstant = int(collinscenterkWhConstant)

                six = False
                seven = False
                eight = False
                nine = False
                ten = False
                eleven = False
                twelve = False
                one = False
                two = False
                three = False
                sixamkWh = 0



    except KeyboardInterrupt:
        kW.render_to_file("static/svg/kw.svg")
        kWh.render_to_file("static/svg/kwh.svg")
        dollar.render_to_file("static/svg/dollars.svg")
        if currentDT.hour > 5 and currentDT.hour < 16:
            gauge_chart.render_to_file("static/svg/kWhHourly.svg")
def gauge_plot_agency(agency, year, proc_cat):
    year = int(year)
    agency = agency
    proc_cat = proc_cat.lower()

    if proc_cat == "all":
        category = list(get_proc_cat(agency, year)['all'].keys())
        height = list(get_proc_cat(agency, year)['all'].values())

        all_vals = []

        gauge_chart = pygal.Gauge(human_readable=True, title_font_size=1)
        gauge_chart.title = 'Agency Spending in all Procurement Categories across all years'

        for values in height:
            for i in values:
                all_vals.append(i)

        gauge_chart.range = [0, max(all_vals)]

        for i in category:
            values = get_proc_cat(agency, year)['all'][i]
            for val in values:
                gauge_chart.add(i, val)
        gauge_chart.render_to_file('Simple_Button/pygal/' + agency +
                                   'gauge_plot.svg')

    # elif proc_cat == 'current_year':
    #     values = get_proc_cat(agency,year)[year]
    #     gauge_chart = pygal.Gauge(human_readable=True, show_legend=False, height = 200,width =200,title_font_size = 1)
    #     gauge_chart.title = 'Agency Spending in all Procurement Categories in ' + str(year)
    #     all_vals = []
    #     for i in values:
    #         if i == []:
    #             continue
    #         else:
    #             all_vals.append(i)
    #     if all_vals == []:
    #
    #         gauge_chart.range = [0, 0]
    #     else:
    #         gauge_chart.range = [0, max(all_vals)]
    #
    #     for i in values:
    #         total = sum(values[i])
    #         gauge_chart.add(str(i),total)

    else:

        all_vals = []

        gauge_chart = pygal.Gauge(human_readable=True,
                                  show_legend=False,
                                  title_font_size=1)
        gauge_chart.title = 'Agency Spending in: ' + proc_cat.upper(
        ) + ' in ' + str(year)

        values = get_proc_cat(agency, year)[year][proc_cat]
        for i in values:
            if i == []:
                continue
            else:
                all_vals.append(i)
        if all_vals == []:

            gauge_chart.range = [0, 0]
        else:
            gauge_chart.range = [0, max(all_vals)]

        for val in values:
            gauge_chart.add(proc_cat, val)

    return (gauge_chart.render_to_file('Simple_Button/pygal/' + agency +
                                       'gauge_plot.svg'))
def make_graph(graph_style):
    msg = ""
    graph_data = ""
    rv = ran.randint(3, 60)
    try:
        if graph_style == "Line":
            graph = pygal.Line(fill=True,
                               interpolate='cubic',
                               style=DarkColorizedStyle)
            graph.title = "Timeline year soda sales in mil"
            graph.x_labels = ["2000", "2001", "2003", "2004", "2005"]
            graph.add("Pepsi", [rv, rv + 20, rv - 5, rv + 3, rv + 12])
            graph.add("Coca Cola", [rv + 5, rv + 18, rv - 5, rv + 20, rv + 25])
            graph.add("Sprite", [rv, rv + 6, rv - 9, rv + 5, rv + 12])
            graph.add("Orange", [rv + 4, rv + 30, rv - 10, rv, rv + 8])
            graph_data = graph.render_data_uri()
            msg = "Line"
        elif graph_style == "Bar":
            graph = pygal.Bar(fill=True,
                              interpolate='cubic',
                              style=DarkColorizedStyle)
            graph.title = "Timeline year soda sales in mil"
            graph.x_labels = ["2000", "2001", "2003", "2004", "2005"]
            graph.add("Pepsi", [rv, rv + 20, rv - 5, rv + 3, rv + 12])
            graph.add("Coca Cola", [rv + 5, rv + 18, rv - 5, rv + 20, rv + 25])
            graph.add("Sprite", [rv, rv + 6, rv - 9, rv + 5, rv + 12])
            graph.add("Orange", [rv + 4, rv + 30, rv - 10, rv, rv + 8])
            graph_data = graph.render_data_uri()
            msg = "Bar"
        elif graph_style == "Treemap":
            treemap = pygal.Treemap(fill=True,
                                    interpolate='cubic',
                                    style=DarkColorizedStyle)
            treemap.title = 'Binary TreeMap'
            treemap.add('A', [2, 1, 12, 4, 2, 1, 1, 3, 12, 3, 4, None, 9])
            treemap.add('B', [4, 2, 5, 10, 3, 4, 2, 7, 4, -10, None, 8, 3, 1])
            treemap.add('C', [3, 8, 3, 3, 5, 3, 3, 5, 4, 12])
            treemap.add('D', [23, 18])
            treemap.add('E',
                        [1, 2, 1, 2, 3, 3, 1, 2, 3, 4, 3, 1, 2, 1, 1, 1, 1, 1])
            treemap.add('F', [31])
            treemap.add('G', [5, 9.3, 8.1, 12, 4, 3, 2])
            treemap.add('H', [12, 3, 3])
            graph_data = treemap.render_data_uri()
            msg = " Treemap"
        elif graph_style == "Gauge":
            gauge_chart = pygal.Gauge(human_readable=True,
                                      fill=True,
                                      interpolate='cubic',
                                      style=DarkColorizedStyle)
            gauge_chart.title = 'DeltaBlue V8 benchmark results'
            gauge_chart.range = [0, 10000]
            gauge_chart.add('Chrome', 8212)
            gauge_chart.add('Firefox', 8099)
            gauge_chart.add('Opera', 2933)
            gauge_chart.add('IE', 41)
            graph_data = gauge_chart.render_data_uri()
            msg = "Gauge"
        elif graph_style == "SolidGauge":
            gauge = pygal.SolidGauge(inner_radius=0.70,
                                     fill=True,
                                     interpolate='cubic',
                                     style=DarkColorizedStyle)
            percent_formatter = lambda x: '{:.10g}%'.format(x)
            dollar_formatter = lambda x: '{:.10g}$'.format(x)
            gauge.value_formatter = percent_formatter

            gauge.add('Series 1', [{
                'value': 225000,
                'max_value': 1275000
            }],
                      formatter=dollar_formatter)
            gauge.add('Series 2', [{'value': 110, 'max_value': 100}])
            gauge.add('Series 3', [{'value': 50}])
            gauge.add('Series 4', [{
                'value': 51,
                'max_value': 100
            }, {
                'value': 12,
                'max_value': 100
            }])
            gauge.add('Series 5', [{'value': 79, 'max_value': 100}])
            gauge.add('Series 6', 99)
            gauge.add('Series 7', [{'value': 100, 'max_value': 100}])
            graph_data = gauge.render_data_uri()
            msg = "SolidGauge"
        elif graph_style == "XY":
            xy_chart = pygal.XY(fill=True,
                                interpolate='cubic',
                                style=DarkColorizedStyle)
            xy_chart.title = 'XY Cosinus'
            xy_chart.add('x = cos(y)',
                         [(cos(x / 10.), x / 10.) for x in range(-50, 50, 5)])
            xy_chart.add('y = cos(x)',
                         [(x / 10., cos(x / 10.)) for x in range(-50, 50, 5)])
            xy_chart.add('x = 1', [(1, -5), (1, 5)])
            xy_chart.add('x = -1', [(-1, -5), (-1, 5)])
            xy_chart.add('y = 1', [(-5, 1), (5, 1)])
            xy_chart.add('y = -1', [(-5, -1), (5, -1)])
            graph_data = xy_chart.render_data_uri()
            msg = "XY"
        elif graph_style == "Multi-series pie":
            pie_chart = pygal.Pie(fill=True,
                                  interpolate='cubic',
                                  style=DarkColorizedStyle)
            pie_chart.title = 'Browser usage by version in February 2012 (in %)'
            pie_chart.add('IE', [5.7, 10.2, 2.6, 1])
            pie_chart.add('Firefox',
                          [.6, 16.8, 7.4, 2.2, 1.2, 1, 1, 1.1, 4.3, 1])
            pie_chart.add('Chrome', [.3, .9, 17.1, 15.3, .6, .5, 1.6])
            pie_chart.add('Safari', [4.4, .1])
            pie_chart.add('Opera', [.1, 1.6, .1, .5])
            graph_data = pie_chart.render_data_uri()
            msg = "Multi-series pie"

    except Exception as e:
        msg = e
    t = (msg, graph_data)
    return t
Exemple #17
0
#!/usr/bin/python
import pygal
import csv

## Parse log
with open('log.csv', 'rb') as csvfile:
    read = csv.reader(csvfile)
    for row in read:
        currentTemp = row[2]

gauge_chart = pygal.Gauge(
    show_legend=False,
    human_readable=True,
    style=pygal.style.styles['default'](label_font_size=24))
gauge_chart.range = [30, 120]
gauge_chart.add('', currentTemp)
gauge_chart.render_to_file('/var/www/html/temp_gauge.svg')
print currentTemp
def main():
    gauge_chart = pygal.Gauge(human_readable=True)

    main_kwh_constant = interpret_csv("Main (kWh)")
    while main_kwh_constant == '' or main_kwh_constant is None:
        main_kwh_constant = 0
    main_kwh_constant = int(main_kwh_constant)

    gym_kwh_constant = interpret_csv("DG (kWh)")
    while gym_kwh_constant == '' or gym_kwh_constant is None:
        gym_kwh_constant = 0
    gym_kwh_constant = int(gym_kwh_constant)

    kitchen_kwh_constant = interpret_csv("DE (kWh)")
    while kitchen_kwh_constant == '' or kitchen_kwh_constant is None:
        kitchen_kwh_constant = 0
    kitchen_kwh_constant = int(kitchen_kwh_constant)

    collins_center_kwh_constant = interpret_csv("AMDP (kWh)")
    while collins_center_kwh_constant == '' or collins_center_kwh_constant is None:
        collins_center_kwh_constant = 0
    collins_center_kwh_constant = int(collins_center_kwh_constant)

    six = False
    seven = False
    eight = False
    nine = False
    ten = False
    eleven = False
    twelve = False
    one = False
    two = False
    three = False
    gauge_chart.title = 'Electricity used hourly in kWh all of ahs'
    gauge_chart.range = [0, 7000]
    try:
        global six_am_kwh, seven_am_kwh, eight_am_kwh, nine_am_kwh, ten_am_kwh, eleven_am_kwh, twelve_pm_kwh, one_pm_kwh, two_pm_kwh, three_pm_kwh
        percent_formatter = lambda x: '{:.10g}%'.format(x)
        dollar_formatter = lambda x: '{:.10g}$'.format(x)
        kW_formatter = lambda x: '{:.10g}kW'.format(x)
        kWh_formatter = lambda x: '{:.10g}kWh'.format(x)
        while True:

            currentDT = datetime.datetime.now()
            currentDT2 = datetime.date.today()

            main_kw = interpret_csv("Main (kW)")
            if main_kw == '' or main_kw is None:
                main_kw = 0
            main_kw = int(main_kw)

            main_kwh = interpret_csv("Main (kWh)")
            if main_kwh == '' or main_kwh is None:
                main_kwh = 0
            main_kwh = int(main_kwh)
            main_kwh = main_kwh - main_kwh_constant

            gym_kw = interpret_csv("DG (kW)")
            if gym_kw == '' or gym_kw is None:
                gym_kw = 0
            gym_kw = int(gym_kw)

            gym_kwh = interpret_csv("DG (kWh)")
            if gym_kwh == '' or gym_kwh is None:
                gym_kwh = 0
            gym_kwh = int(gym_kwh)
            gym_kwh = gym_kwh - gym_kwh_constant

            kitchen_kw = interpret_csv("DE (kW)")
            if kitchen_kw == '' or kitchen_kw is None:
                kitchen_kw = 0
            kitchen_kw = int(kitchen_kw)

            kitchen_kwh = interpret_csv("DE (kWh)")
            if kitchen_kwh == '' or kitchen_kwh is None:
                kitchen_kwh = 0
            kitchen_kwh = int(kitchen_kwh)
            kitchen_kwh = kitchen_kwh - kitchen_kwh_constant

            collins_center_kw = interpret_csv("AMDP (kW)")
            if collins_center_kw == '' or collins_center_kw is None:
                collins_center_kw = 0
            collins_center_kw = int(collins_center_kw)

            collins_center_kwh = interpret_csv("AMDP (kWh)")
            if collins_center_kwh == '' or collins_center_kwh is None:
                collins_center_kwh = 0
            collins_center_kwh = int(collins_center_kwh)
            collins_center_kwh = collins_center_kwh - collins_center_kwh_constant

            kW = pygal.SolidGauge(
                half_pie=True, inner_radius=0.70,
                style=pygal.style.styles['default'](value_font_size=10))
            kW.add('AHS MAIN (AKA: All of AHS)', [{'value': main_kw, 'max_value': 750}],
                   formatter=kW_formatter)
            kW.add('AHS GYM', [{'value': gym_kw, 'max_value': 200}],
                   formatter=kW_formatter)
            kW.add('AHS COLLINS CENTER', [{'value': collins_center_kw, 'max_value': 250}],
                   formatter=kW_formatter)
            kW.add('AHS KITCHEN', [{'value': kitchen_kw, 'max_value': 150}],
                   formatter=kW_formatter)
            kW.render_to_file("static/svg/kw.svg")

            kWh = pygal.SolidGauge(half_pie=True, inner_radius=0.70,
                                   style=pygal.style.styles['default'](value_font_size=10))
            kWh.add('AHS MAIN (AKA: All of AHS)', [{'value': main_kwh, 'max_value': 50}],
                    formatter=kWh_formatter)
            kWh.add('AHS GYM', [{'value': gym_kwh, 'max_value': 20}],
                    formatter=kWh_formatter)
            kWh.add('AHS COLLINS CENTER', [{'value': collins_center_kwh, 'max_value': 20}],
                    formatter=kWh_formatter)
            kWh.add('AHS KITCHEN', [{'value': kitchen_kwh, 'max_value': 20}],
                    formatter=kWh_formatter)
            kWh.render_to_file("static/svg/kwh.svg")

            dollar = pygal.SolidGauge(half_pie=True, inner_radius=0.70,
                                      style=pygal.style.styles['default'](value_font_size=10))
            dollar.add('AHS MAIN (AKA: All of AHS)', [{'value': int(main_kwh * 0.12), 'max_value': int(0.12 * 50)}],
                       formatter=dollar_formatter)
            dollar.add('AHS GYM', [{'value': int(gym_kwh * 0.12), 'max_value': int(0.12 * 20)}],
                       formatter=dollar_formatter)
            dollar.add('AHS COLLINS CENTER', [{'value': int(0.12 * collins_center_kwh), 'max_value': int(0.12 * 20)}],
                       formatter=dollar_formatter)
            dollar.add('AHS KITCHEN', [{'value': int(0.12 * kitchen_kwh), 'max_value': int(0.12 * 20)}],
                       formatter=dollar_formatter)
            dollar.render_to_file("static/svg/dollars.svg")
            if int(currentDT.hour) == 23:
                current_day = currentDT2 + timedelta(days=1)

                main_kwh_constant = interpret_csv("Main (kWh)")
                while main_kwh_constant == '' or main_kwh_constant is None:
                    main_kwh_constant = interpret_csv("Main (kWh)")
                main_kwh_constant = int(main_kwh_constant)

                gym_kwh_constant = interpret_csv("DG (kWh)")
                while gym_kwh_constant == '' or gym_kwh_constant is None:
                    gym_kwh_constant = interpret_csv("DG (kWh)")
                gym_kwh_constant = int(gym_kwh_constant)

                kitchen_kwh_constant = interpret_csv("DE (kWh)")
                while kitchen_kwh_constant == '' or kitchen_kwh_constant is None:
                    kitchen_kwh_constant = interpret_csv("DE (kWh)")
                kitchen_kwh_constant = int(kitchen_kwh_constant)

                collins_center_kwh_constant = interpret_csv("AMDP (kWh)")
                while collins_center_kwh_constant == '' or collins_center_kwh_constant is None:
                    collins_center_kwh_constant = interpret_csv("AMDP (kWh)")
                collins_center_kwh_constant = int(collins_center_kwh_constant)

                six = False
                seven = False
                eight = False
                nine = False
                ten = False
                eleven = False
                twelve = False
                one = False
                two = False
                three = False
                six_am_kwh = 0
            try:
                current_day
            except NameError:
                print("kWh hourly not ready yet")
            else:
                if currentDT2.day == current_day:
                    if 5 <= currentDT.hour < 16:
                        if (int(currentDT.hour) == 6) and not six:
                            six = True
                            gauge_chart.add('6 am', 0)
                            six_am_kwh = interpret_csv("Main (kWh)")
                            if six_am_kwh == '' or six_am_kwh is None:
                                six_am_kwh = interpret_csv("Main (kWh)")
                            six_am_kwh = int(six_am_kwh)

                        if (int(currentDT.hour) == 7) and not seven:
                            seven = True
                            seven_am_kwh = interpret_csv("Main (kWh)")
                            if seven_am_kwh == '' or seven_am_kwh is None:
                                seven_am_kwh = interpret_csv("Main (kWh)")
                            seven_am_kwh = int(seven_am_kwh)
                            gauge_chart.add('7 am', seven_am_kwh - six_am_kwh)

                        if (int(currentDT.hour) == 8) and not eight:
                            eight = True
                            eight_am_kwh = interpret_csv("Main (kWh)")
                            if eight_am_kwh == '' or eight_am_kwh is None:
                                eight_am_kwh = interpret_csv("Main (kWh)")
                            eight_am_kwh = int(eight_am_kwh)
                            gauge_chart.add('8 am', eight_am_kwh - six_am_kwh)

                        if (int(currentDT.hour) == 9) and not nine:
                            nine = True
                            nine_am_kwh = interpret_csv("Main (kWh)")
                            if nine_am_kwh == '' or nine_am_kwh is None:
                                nine_am_kwh = interpret_csv("Main (kWh)")
                            nine_am_kwh = int(nine_am_kwh)
                            gauge_chart.add('9 am', nine_am_kwh - six_am_kwh)

                        if (int(currentDT.hour) == 10) and not ten:
                            ten = True
                            ten_am_kwh = interpret_csv("Main (kWh)")
                            if ten_am_kwh == '' or ten_am_kwh is None:
                                ten_am_kwh = interpret_csv("Main (kWh)")
                            ten_am_kwh = int(ten_am_kwh)
                            gauge_chart.add('10 am', ten_am_kwh - six_am_kwh)

                        if (int(currentDT.hour) == 11) and not eleven:
                            eleven = True
                            eleven_am_kwh = interpret_csv("Main (kWh)")
                            if eleven_am_kwh == '' or eleven_am_kwh is None:
                                eleven_am_kwh = interpret_csv("Main (kWh)")
                            eleven_am_kwh = int(eleven_am_kwh)
                            gauge_chart.add('11 am', eleven_am_kwh - six_am_kwh)

                        if (int(currentDT.hour) == 12) and not twelve:
                            twelve = True
                            twelve_pm_kwh = interpret_csv("Main (kWh)")
                            if twelve_pm_kwh == '' or twelve_pm_kwh is None:
                                twelve_pm_kwh = interpret_csv("Main (kWh)")
                            twelve_pm_kwh = int(twelve_pm_kwh)
                            gauge_chart.add('12 pm', twelve_pm_kwh - six_am_kwh)

                        if (int(currentDT.hour) == 13) and not one:
                            one = True
                            one_pm_kwh = interpret_csv("Main (kWh)")
                            if one_pm_kwh == '' or one_pm_kwh is None:
                                one_pm_kwh = interpret_csv("Main (kWh)")
                            one_pm_kwh = int(one_pm_kwh)
                            gauge_chart.add('1 pm', one_pm_kwh - six_am_kwh)

                        if (int(currentDT.hour) == 14) and not two:
                            two = True
                            two_pm_kwh = interpret_csv("Main (kWh)")
                            if two_pm_kwh == '' or two_pm_kwh is None:
                                two_pm_kwh = interpret_csv("Main (kWh)")
                            two_pm_kwh = int(two_pm_kwh)
                            gauge_chart.add('2 pm', two_pm_kwh - six_am_kwh)

                        if (int(currentDT.hour) == 15) and not three:
                            three = True
                            three_pm_kwh = interpret_csv("Main (kWh)")
                            if three_pm_kwh == '' or three_pm_kwh is None:
                                three_pm_kwh = interpret_csv("Main (kWh)")
                            three_pm_kwh = int(three_pm_kwh)
                            gauge_chart.add('3 pm', three_pm_kwh - six_am_kwh)

                        gauge_chart.render_to_file("kWhHourly.svg")

            time.sleep(15)

    except KeyboardInterrupt:
        kW.render_to_file("static/svg/kw.svg")
        kWh.render_to_file("static/svg/kwh.svg")
        dollar.render_to_file("static/svg/dollars.svg")
        if 5 < currentDT.hour < 16:
            gauge_chart.render_to_file("static/svg/kWhHourly.svg")
Exemple #19
0
# -*- coding: utf-8 -*-
import pygal

gauge_chart = pygal.Gauge()
gauge_chart.title = 'Speed of space shuttle during takeoff'
gauge_chart.x_labels = ['Pre-takeoff', '5 min', ' 10 min', '15 min', '20 min']
gauge_chart.add('Pre-takeoff', 0)
gauge_chart.add('5 min', 96)
gauge_chart.add('10 min', 167)
gauge_chart.add('15 min', 249)
gauge_chart.add('20 min', 339)

gauge_chart.render_to_file('gauge_chart.svg')
Exemple #20
0
def handle_text(message):
    id = message.from_user.id
    write_diagram(pygal.Gauge(), id, 'Your diagrams')