def dispersao(): fmax = 100 friends = [rand.randint(1, fmax) for _ in range(10)] minutes = [rand.randint(1, fmax) for _ in range(10)] labels = "abcdefghij" # cria o gráfico plot = Grafico(False) plot.titulo = "Minutos diários vs. Número de amigos" plot.eixo_x = "# de amigos" plot.eixo_y = "minutos diários passados no site" plot.font.set_weight("bold") plot.font.set_size("large") plot.p.axis([0, fmax, 0, fmax]) # eixos iguais # grafico de dispersão plot.p.scatter(friends, minutes, color='black') # nomeia cada posição (alternativa ao p.text) for label, friend, minute in zip(labels, friends, minutes): plot.p.annotate( label, xy=(friend, minute), xytext=(7, -4), # personaliza posição textcoords='offset points', fontproperties=plot.font) # exibe plot.show()
def histogram(): grades = [83, 95, 91, 87, 70, 30, 85, 82, 100, 67, 73, 77, 0] decile = lambda grade: grade // 10 * 10 histogram = Counter(decile(grade) for grade in grades) print(histogram) plt = Grafico(False) plt.p.bar([x for x in histogram.keys()], histogram.values(), 8) plt.p.axis([-6, 106, 0, 5]) plt.p.xticks(range(0, 101, 10)) plt.eixo_x = "Decil" plt.eixo_y = "# de Alunos" plt.titulo = "Distribuição das Notas do Teste 1" plt.show()
def linhas(): # usando a cabeça pythonica variance = [2**i for i in range(9)] bias_square = sorted(variance, reverse=True) print(variance, bias_square) total_error = [x + y for x, y in zip(variance, bias_square)] xs = [i for i, _ in enumerate(variance)] # pra não usar valor fixo print(total_error, xs) # múltiplas chamadas ao plot plot = Grafico() plot.XY(xs, [variance, 'g:', 'variância'], [bias_square, 'r-.', 'polarização^2'], [total_error, 'b-', 'erro total']) # significa posicionar a legenda em "top center" plot.p.legend(loc=9) plot.eixo_x = "complexidade do modelo" plot.titulo = "Relação entre Polarização e Variância" plot.show()