Python - Twórz PDF z grafiką, część 2

Spisie treści
W pierwszej części samouczka opisujemy podstawowe punkty dlaczego Pyton Jest to dobra opcja do budowania elementów graficznych z danych tekstowych, mogliśmy też trochę zobaczyć jak obsłużyć moduł RaportLab do wygenerowania prostego pliku PDF z narysowanym tekstem testowym.
Przygotowanie
Aby wykonać nasz projekt, zamierzamy pobrać dane historyczne dotyczące położenia słońca, pobieramy je ze strony internetowej SEC lub Space Environment Center, oryginalnie jest to plik .txt, jednak aby przyspieszyć nasz rozwój, zamierzamy aby dołączyć go bezpośrednio do naszego programu w krotce w następujący sposób:
 dane = [# Rok Prognoza Miesiąc Wysoka Niska (2004, 12, 34,2, 35,2, 33,2), (2005, 1, 31,5, 34,5, 28,5), # Kontynuacja z większą ilością danych] 

Należy wspomnieć, że tymi danymi, które będziemy podawać, wygenerujemy linie naszego wykresu.
Korzystanie z polilinii
Zanim przejdziemy dalej, musimy wiedzieć, jak rysować linie, do tego użyjemy Polilinie który jest tylko jeden Klasa ReportLab co pozwala nam generować linie ze współrzędnych, te współrzędne są odbierane jako argument. Zobaczmy dalej, jak wygenerować prosty wykres.
Za pomocą linii PolyLine ([(0, 0), (10, 0), (10, 10), (0, 10)]) możemy wygenerować wykres, który widzimy na poniższym obrazku:

Pierwsza realizacja
Skoro wiemy, z jakimi narzędziami będziemy pracować, nadszedł czas na stworzenie naszej pierwszej wersji programu.
Najpierw zobaczymy proponowany kod, następnie wyjaśnimy, jak to działa:
 z reportlab.lib importuj kolory z reportlab.graphics.shapes import * z reportlab.graphics importuj dane 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)] rysunek = Rysunek (200, 150) pred = [wiersz [2] -40 w przypadku wiersza w danych] high = [wiersz [3] -40 w przypadku wiersza w danych] low = [wiersz [4] -40 w przypadku wiersza w danych] razy = [200 * ( (wiersz [0] + wiersz [1] /12.0) - 2005) -110 dla wiersza w danych] drawing.add (PolyLine (zip (times, pred), strokeColor = colors.blue)) drawing.add (PolyLine (zip (times, high), 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 (rysunek, 'report1.pdf', 'Plamy słoneczne') 

W kodzie zaczynamy od zaimportowania niezbędnych pakietów, uwzględniamy klasa kolorów co pozwala nam narysować wykresy w kolorze, następnie definiujemy nasze dane, tym razem zawarliśmy znacznie więcej danych, aby stworzyć bardziej kompletny wykres.
Tworzymy instancję Lekcja plastyki a następnie przygotowujemy trzy zmienne, które zamierzamy przetłumaczyć.
Wreszcie z nim dodaj metodę włączamy zmienne zdefiniowane już przygotowanymi danymi, gdy mamy 3 sekcje, budujemy PDF metodą RysujDoPliku i na koniec powinniśmy mieć coś bardzo podobnego do tego:

Jak widać, narysowaliśmy już linie odpowiadające włączonym danym, jednak nadal musimy nadać raportowi trochę więcej znaczenia, do tego musimy uwzględnić wytyczne, jednak gdy wiemy, jak to działa, możemy zostawić resztę do nich.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt
wave wave wave wave wave