def sparklines(data): chart = SparkLineChart(300, 200) chart.set_axis_labels(Axis.LEFT, [0, max(data)/2, max(data)]) chart.set_axis_labels(Axis.BOTTOM, range(0,5)) chart.add_data(data) return chart.get_url()
def spark_line_url(self, challenge): sl = SparkLineChart(160, 10) data = [report.score() for report in challenge.report_set.filter("reporter = ", self).order("reported_date")] sl.add_data(data) return sl.get_url()
legend_array.append(legend) data_array.append(int(data.strip())) for line in comparefile: (legend, data) = line.split(' ') data_compared_array.append(int(data.strip())) chart.add_data(data_array) chart.add_data(data_compared_array) chart.add_data([0]*2) chart.set_colours(['000000']) chart.add_fill_range('224499', 0, 1) chart.add_fill_range('339966', 1, 2) #chart.add_fill_range('76A4FB', 1, 2) legend_array_stripped = [legend_array[0], legend_array[len(legend_array)/2], legend_array[-1]] chart.set_axis_labels('x', legend_array_stripped) chart.set_axis_labels('y', ['0', '150', '300', '450', '600', '750']) name = os.path.basename(datacompletefile) chart.set_title(name.split('.')[0].upper() + " - developers in 2010: % commits along project history") print chart.get_url() chart.download('images/commits_by_month_compared_2010_'+str(name.split('.')[0])+'.png')
def generate_graph(tl, small=False): sources = [tl.maps, tl.shuffles, tl.merges, tl.reducers, tl.waste] sources = [[int(c) for c in source.split(',')] for source in sources] sources.reverse() total = len(sources[0]) sample = max(total/100, 1) actual = min(total, 100) # Set the vertical range from 0 to 50 max_y = 0 for i in xrange(total): max_y = max(max_y, sum(x[i] for x in sources)) max_y += .05 * max_y max_y = round(max_y / 10.0) * 10 width = 200 if small else 600 height = 125 if small else 375 if small: chart = SparkLineChart(width, height, y_range=[0, max_y]) else: chart = SimpleLineChart(width, height, y_range=[0, max_y]) # First value is the highest Y value. Two of them are needed to be # plottable. chart.add_data([max_y] * 2) # 3 sets of real data for i, source in enumerate(sources): data = [sum(x[t * sample] for x in sources[i:]) for t in xrange(actual)] chart.add_data(data) # Last value is the lowest in the Y axis. chart.add_data([0] * 2) chart.set_colours(['FFFFFF','FF3399','6666CC','669933','CC3333','33CCFF','FFFFFF']) for i in xrange(7): chart.set_line_style(i, 0) chart.add_fill_range('FF3399', 1, 2) chart.add_fill_range('6666CC', 2, 3) chart.add_fill_range('669933', 3, 4) chart.add_fill_range('CC3333', 4, 5) chart.add_fill_range('33CCFF', 5, 6) # Some axis data if not small: legend = ['','maps','shuffle','merge','reduce','waste',''] legend.reverse() chart.set_legend(legend) chart.set_grid(0, 25) chart.set_axis_labels(Axis.LEFT, ['', int(max_y/4), int(max_y / 2), int(max_y*3/4), '']) chart.set_axis_labels(Axis.BOTTOM, ['', int(total/4), int(total/2), int(total*3/4), '']) try: return chart.get_url() except: return '/static/invalid_graph.png'