Python - Crie PDF com gráficos, parte 2

Índice
Na primeira parte do tutorial, descrevemos os pontos básicos de por que Pitão É uma boa opção para construir elementos gráficos a partir de dados de texto, também podemos ver um pouco como lidar com o módulo ReportLab para gerar um PDF simples com texto de teste desenhado.
Preparação
Para fazer nosso projeto vamos pegar alguns dados históricos sobre a posição do sol, tiramos do site da SEC ou do Space Environment Center, está originalmente em um arquivo .txt, porém para acelerar nosso desenvolvimento vamos para incluí-lo diretamente em nosso programa em uma tupla da seguinte maneira:
 data = [# Ano Mês Predição Alta Baixa (2004, 12, 34,2, 35,2, 33,2), (2005, 1, 31,5, 34,5, 28,5), # Continua com mais dados] 

É importante mencionar que com esses dados que alimentaremos geraremos as linhas do nosso gráfico.
Usando Polilinhas
Antes de continuar devemos saber traçar os limites, para isso usaremos PolyLines que é apenas um Classe ReportLab que nos permite gerar linhas a partir de coordenadas, essas coordenadas são recebidas como um argumento. Vamos ver a seguir como gerar um gráfico simples.
Com a linha Polilinha ([(0, 0), (10, 0), (10, 10), (0, 10)]) podemos gerar um gráfico que vemos na imagem a seguir:

Primeira Implementação
Já que sabemos com quais ferramentas vamos trabalhar, é hora de fazer nossa primeira versão do programa.
Primeiro veremos o código proposto e, em seguida, explicaremos como funciona:
 from reportlab.lib importar cores de reportlab.graphics.shapes import * from reportlab.graphics import renderPDF data = [(2005, 8, 113.2, 114.2, 112.2), (2005, 9, 112.8, 115.8, 109.8), (2005, 10, 111,0, 116,0, 106,0), (2005, 11, 109,8, 116,8, 102,8), (2005, 12, 107,3, 115,3, 99,3), (2006, 1, 105,2, 114,2, 96,2), (2006, 2, 104,1, 114,1, 94,1), (2006, 3, 99,9, 110,9, 88,9), (2006, 4, 94,8, 106,8, 82,8), (2006, 5, 91,2, 104,2, 78,2),] desenho = Desenho (200, 150) pred = [linha [2] -40 para linha nos dados] alto = [linha [3] -40 para linha nos dados] baixo = [linha [4] -40 para linha nos dados] vezes = [200 * ( (linha [0] + linha [1] /12.0) - 2005) -110 para linha nos dados] drawing.add (PolyLine (zip (times, pred), strokeColor = colors.blue)) drawing.add (PolyLine (zip (vezes, alto), strokeColor = colors.red)) drawing.add (PolyLine (zip (times, low), strokeColor = colors.green)) drawing.add (String (65, 115, 'Sunspots', fontSize = 18 , fillColor = colors.red)) renderPDF.drawToFile (drawing, 'report1.pdf', 'Sunspots') 

No código, começamos importando os pacotes necessários, incluímos o classe de cores que nos permite desenhar os gráficos em cores, então definimos nossos dados, desta vez incluímos muito mais dados para fazer um gráfico mais completo.
Nós instanciamos o Classe de desenho e então preparamos as três variáveis ​​que vamos traduzir.
Finalmente com ele adicionar método estamos incorporando as variáveis ​​definidas com os dados já preparados, uma vez que temos as 3 seções construímos o PDF com o método drawToFile e no final devemos ter algo muito semelhante ao seguinte:

Como podemos ver, já traçamos as linhas correspondentes aos dados incorporados, porém ainda precisamos dar um pouco mais de sentido ao relatório, para isso devemos incorporar diretrizes, porém uma vez que saibamos como isso funciona podemos deixar o resto para eles.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave