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)
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)
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]))
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')
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))
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)
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)
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
# -*- 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')
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)
# # # 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')
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
#!/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")
# -*- 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')
def handle_text(message): id = message.from_user.id write_diagram(pygal.Gauge(), id, 'Your diagrams')