def animalChanges(stats): for creature in ['rabbit', 'wolf']: chart = GroupedVerticalBarChart(600, 300) WYborn = [] WYage = [] WYstarv = [] WYeaten = [] WX = [] for t in sorted(stats[creature].keys()): WX.append(t) born, age, starv, eaten = 0, 0, 0, 0 for event in stats[creature][t]['event']: if event == LiveLog.BIRTH: born += 1 elif event == LiveLog.AGE: age += 1 elif event == LiveLog.STARV: starv += 1 elif event == LiveLog.EATEN: eaten += 1 WYborn.append(born) WYage.append(age) WYstarv.append(starv) WYeaten.append(eaten) # print born, creature, str(stats[creature][t]['event']) chart.set_bar_width(4) chart.set_bar_spacing(1) chart.set_group_spacing(20) chart.set_title("Population changes/generation: / %s" % (creature)) chart.add_data(WYborn) chart.add_data(WYage) chart.add_data(WYstarv) chart.add_data(WYeaten) chart.set_legend(['born', 'old age', 'starvation', 'eaten']) chart.set_colours(['00ff00', '000000', 'ff0000', 'ddbbbb']) chart.set_axis_labels(Axis.BOTTOM, range(0, max(WX) + 1, 5)) chart.download('born-deaths-%s.png' % (creature))
preceptor_id = row[4], preceptor_name = row[5], 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)
def animalChangesInTime(stats): stats_t = {'rabbit': {}, 'wolf': {}} for creature in ['rabbit', 'wolf']: for t in stats[creature].keys(): new_t = (t / 100) * 100 #zmniejszamy ilosc if new_t not in stats_t[creature]: stats_t[creature][new_t] = [] stats_t[creature][new_t] += stats[creature][t]['event'] #tylko eventy print stats[creature][t]['event'] for creature in ['rabbit', 'wolf']: chart = GroupedVerticalBarChart(600, 300) WYborn = [] WYage = [] WYstarv = [] WYeaten = [] WYcount = [] WX = [] count = 0 for t in sorted(stats_t[creature].keys()): WX.append(t) print t print stats_t[creature][t] born, age, starv, eaten = 0, 0, 0, 0 for event in stats_t[creature][t]: if event == LiveLog.BIRTH: born += 1 count += 1 elif event == LiveLog.AGE: age += 1 count -= 1 elif event == LiveLog.STARV: starv += 1 count -= 1 elif event == LiveLog.EATEN: eaten += 1 count -= 1 WYborn.append(born) WYage.append(age) WYstarv.append(starv) WYeaten.append(eaten) WYcount.append(count) print WYborn print WYcount print WYeaten chart.set_bar_width(4) chart.set_bar_spacing(1) chart.set_group_spacing(20) chart.set_title("Population changes/time: / %s" % (creature)) chart.add_data(WYborn) chart.add_data(WYage) chart.add_data(WYstarv) chart.add_data(WYeaten) chart.add_data(WYcount) chart.auto_scale = True chart.set_legend(['born', 'old age', 'starvation', 'eaten', 'population size']) chart.set_colours(['00ff00', '000000', 'ff0000', 'ddbbbb', 'aa00ee']) chart.set_axis_labels(Axis.BOTTOM, range(0, max(WX) + 1, 100)) chart.download('life-%s.png' % (creature))