def draw_overall(self,data,cl_list,title,band,max_y): self.init() chart = GroupedVerticalBarChart(1000,300, y_range=(0,max_y)) for i in range(0,len(data)) : chart.add_data(data[i]) chart.set_bar_width(18) chart.set_colours(['76A4FB', '224499','208020', '80C65A','FF0000']) chart.set_legend(cl_list) index=chart.set_axis_labels(Axis.BOTTOM, scenario_implemented) chart.set_axis_range(Axis.LEFT,0,max_y) chart.set_axis_style(index, colour='000000', \ font_size= 6) chart.set_grid(0,5, 5, 5) IMG_DIR = os.path.join("serv2.icerasemi.com", "eng", "nsait", "img\\") IMG_DIR = 'serv2.icerasemi.com\eng\nsait\img\\' #dir = '\\serv2.nvidia.com\eng\nsait\img' dir = 'chart\\' chart.download(dir+title+str(band)+'.jpeg')
def bargraph(self, days, bars, output, title=""): data = [] min_count = 0 max_count = 0 date = lambda i: datetime.date.today() + datetime.timedelta(-days + i) for i in range(0, days + 1): count = bars[date(i)] max_count = max(count, max_count) min_count = min(count, min_count) data.append(count) # TOFIX: google chart API for negative numbers is too screwy, for now only >0 min_count = max(min_count, 0) chart = GroupedVerticalBarChart(800, 300, y_range=[min_count, max_count]) chart.add_data(data) chart.set_bar_width(500 / days) # Set the line colour to blue chart.set_colours(['0000FF']) # Set the horizontal dotted lines chart.set_grid(0, 25, 5, 5) if days >= 30: fmt = "%d" else: fmt = "%d/%m" chart.set_axis_labels(Axis.BOTTOM, \ [date(i).strftime(fmt) for i in range(0,days)]) # The Y axis labels contains 0 to 100 skipping every 25, but remove the # first number because it's obvious and gets in the way of the first X # label. delta = float(max_count - min_count) / 100 skip = max(int(delta) / 5 * 100, 100) left_axis = range(0, max_count + 1, skip) left_axis[0] = '' chart.set_axis_labels(Axis.LEFT, left_axis) if len(title) > 0: chart.set_title(title % days) chart.download(output)
def bargraph(self,days,bars,output,title = ""): data = [] min_count = 0 max_count = 0 date = lambda i:datetime.date.today() + datetime.timedelta(-days + i) for i in range(0,days+1): count = bars[date(i)] max_count = max(count,max_count) min_count = min(count,min_count) data.append(count) # TOFIX: google chart API for negative numbers is too screwy, for now only >0 min_count = max (min_count,0) chart = GroupedVerticalBarChart(800,300,y_range=[min_count, max_count]) chart.add_data(data) chart.set_bar_width(500 / days) # Set the line colour to blue chart.set_colours(['0000FF']) # Set the horizontal dotted lines chart.set_grid(0, 25, 5, 5) if days >= 30: fmt = "%d" else: fmt="%d/%m" chart.set_axis_labels(Axis.BOTTOM, \ [date(i).strftime(fmt) for i in range(0,days)]) # The Y axis labels contains 0 to 100 skipping every 25, but remove the # first number because it's obvious and gets in the way of the first X # label. delta = float(max_count-min_count) / 100 skip = max(int(delta) / 5 * 100,100) left_axis = range(0, max_count + 1, skip) left_axis[0] = '' chart.set_axis_labels(Axis.LEFT, left_axis) if len(title) > 0: chart.set_title(title % days) chart.download(output)
site_name = row[6], ) conn.execute(ins) preceptors = conn.execute(select([stats.c.preceptor_name, stats.c.site_name ]).group_by(stats.c.preceptor_name, stats.c.site_name)) for p in preceptors: chart = GroupedVerticalBarChart(500, 350, y_range=(0,5)) chart.set_bar_width(7) chart.set_bar_spacing(0) chart.set_group_spacing(4) chart.set_colours(['ccffff', 'ffcc00', 'cc99ff']) chart.set_grid(0, 20, 5, 5) left_axis = range(0, 6, 1) left_axis[0] = '' #interfers with first x label chart.set_axis_labels(Axis.LEFT, left_axis) prec = p[0] site = p[1] questions = conn.execute(select([stats.c.question_name, stats.c.order, func.avg(stats.c.choice_id)], stats.c.preceptor_name == prec ).group_by(stats.c.order, stats.c.question_name, ).order_by(stats.c.order )).fetchall() ques_avgs = map(lambda q: q[2], questions) chart.add_data(ques_avgs) chart.set_axis_labels(Axis.BOTTOM, range(1,len(ques_avgs)+1))
def draw_scenario(self,dxp0,dxp1,cpu_dl,cpu_ul,ftp_dl,ftp_ul,cl_list,band,max_y,scen,branch): chart = GroupedVerticalBarChart(1000,300, y_range=(0,max_y)) fixed_color =['ff154d', '7fff00' ,'0000ff','db7093','9f9f5f'] color = [] for i in range(0,len(cl_list)): if i < 5 : color.append(fixed_color[i]) else: color.append(self.triplet(randint(100, 255), randint(100, 255), randint(100, 255))) chart.set_colours(color) #chart.set_colours(['76A4FB', '224499','208020', '80C65A','FF0000']) chart.set_legend(cl_list) chart.set_grid(0,5, 5, 5) #print scen if re.search('DL',scen) and re.search('UL',scen) : for j in range(0,len(scenario_implemented)): if scen == scenario_implemented[j] : for i in range(0,len(cl_list)): chart.add_data([dxp0[i][j],dxp1[i][j],cpu_dl[i][j],ftp_dl[i][j],cpu_ul[i][j],ftp_ul[i][j]]) index=chart.set_axis_labels(Axis.BOTTOM,["dxp0","dxp1","CPU_DL","FTP_DL","CPU_UL","FTP_UL"]) chart.set_bar_width(18) elif re.search('DL',scen): for j in range(0,len(scenario_implemented)): if scen == scenario_implemented[j] : for i in range(0,len(cl_list)): chart.add_data([dxp0[i][j],dxp1[i][j],cpu_dl[i][j],ftp_dl[i][j]]) index=chart.set_axis_labels(Axis.BOTTOM,["dxp0","dxp1","CPU_DL","FTP_DL"]) if(len(cl_list)<5): chart.set_bar_width(36) else: chart.set_bar_width(18) elif re.search('UL',scen): for j in range(0,len(scenario_implemented)): if scen == scenario_implemented[j] : for i in range(0,len(cl_list)): chart.add_data([dxp0[i][j],dxp1[i][j],cpu_ul[i][j],ftp_ul[i][j]]) index=chart.set_axis_labels(Axis.BOTTOM,["dxp0","dxp1","CPU_UL","FTP_UL"]) if(len(cl_list)<5): chart.set_bar_width(36) else: chart.set_bar_width(18) chart.set_axis_range(Axis.LEFT,0,max_y) chart.set_axis_style(index, colour='000000', \ font_size= 12) chart_dir = 'chart\\' file = scen+"_"+"Band"+str(band)+"_"+branch+".jpeg" #print "src",chart_dir+file #print "dest",CHART_LOC+'\\\\'+file chart.download(chart_dir+file)