Python - Създаване на PDF с графики, част 2

Съдържание
В първата част на урока описваме основните моменти защо Python Това е добър вариант за изграждане на графични елементи от текстови данни, също бихме могли да видим малко как да се справим с модула ReportLab за генериране на обикновен PDF файл с нарисуван тестов текст.
Подготовка
За да направим нашия проект, ще вземем някои исторически данни за положението на Слънцето, ще вземем това от уебсайта на SEC или Space Environment Center, първоначално е в .txt файл, но за да ускорим развитието си да го включим директно в нашата програма на кортеж, както следва:
 данни = [ # Година Прогноза за месец Висока Ниска (2004, 12, 34.2, 35.2, 33.2), (2005, 1, 31.5, 34.5, 28.5), # Продължава с още данни] 

Важно е да споменем, че с тези данни, които ще захранваме, ще генерираме линиите на нашата графика.
Използване на полилинии
Преди да продължим, трябва да знаем как да чертаем линиите, за това ще използваме PolyLines който е само един ReportLab клас което ни позволява да генерираме линии от координати, тези координати се приемат като аргумент. Нека да видим по -нататък как да генерираме проста графика.
С линията PolyLine ([(0, 0), (10, 0), (10, 10), (0, 10)]) можем да генерираме графика, която виждаме на следното изображение:

Първо изпълнение
Тъй като знаем с какви инструменти ще работим, е време да направим първата си версия на програмата.
Първо ще видим предложения код, след което ще обясним как работи:
 от reportlab.lib импортиращи цветове от reportlab.graphics.shapes импортиране * от reportlab.graphics импортиране renderPDF данни = [(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),] чертеж = Чертеж (200, 150) пред = [ред [2] -40 за ред в данни] висок = [ред [3] -40 за ред в данни] нисък = [ред [4] -40 за ред в данни] пъти = [200 * ( (ред [0] + ред [1] /12.0) - 2005) -110 за ред в данни] drawing.add (PolyLine (zip (times, pred), strokeColor = colors.blue)) drawing.add (PolyLine (zip (пъти, високо), 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 (чертеж, 'report1.pdf', 'Sunspots') 

В кода, който започваме с импортиране на необходимите пакети, включваме клас цветове което ни позволява да рисуваме графиките в цвят, след това дефинираме нашите данни, този път сме включили много повече данни, за да направим по -пълна графика.
Ние създаваме Клас по рисуване и след това подготвяме трите променливи, които ще преведем.
Най -накрая с него метод за добавяне ние включваме променливите, дефинирани с вече подготвените данни, след като имаме 3 раздела, ние изграждаме PDF с метода drawToFile и в крайна сметка трябва да имаме нещо много подобно на следното:

Както виждаме, вече начертахме линиите, съответстващи на включените данни, но все пак трябва да придадем на доклада малко повече смисъл, за това трябва да включим ръководства, но след като разберем как работи това, можем да оставим останалите на тях.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка
wave wave wave wave wave