本文代码贴出代码都是python3
import pygal
from itertools import groupby
def draw_line(x_data,y_data,title,y_legend):
xy_map = []
for x,y in groupby(sorted(zip(x_data,y_data)),key=lambda _: _[0]):
y_list = [v for _, v in y]
xy_map.append([x, sum(y_list)/ len(y_list)])
x_unique,y_mean = [*zip(*xy_map)]
line_chart = pygal.Line()
line_chart.title= title
line_chart.x_labels=x_unique
line_chart.add(y_legend,y_mean)
line_chart.render_to_file(title+'.svg')
return line_chart
本文只对其中的代码块部分进行分析,由于是部分代码,就不对整体设计思路进行阐释,详情见书(太简单了 自己看)。
主要对此部分代码进行阐释。
for x,y in groupby(sorted(zip(x_data,y_data)),key=lambda _: _[0]):
y_list = [v for _, v in y]
这里放出我探究代码
x_data = [1,1,1,1,1,2,2,2,2,2]
y_data = [1,2,