Python - Grafiklerle PDF Oluştur, bölüm 2

İçindekiler
Öğreticinin ilk bölümünde bunun temel noktalarını açıklıyoruz. piton Metin verilerinden grafik öğeler oluşturmak iyi bir seçenektir, ayrıca modülün nasıl ele alınacağını da biraz görebiliriz. RaporLab çizilmiş test metni ile basit bir PDF oluşturmak için.
Hazırlık
Projemizi yapmak için güneşin konumu hakkında bazı tarihsel verileri alacağız, bunu SEC veya Uzay Çevre Merkezi'nin web sitesinden alıyoruz, orijinal olarak bir .txt dosyasında, ancak gelişmemizi hızlandırmak için gidiyoruz. aşağıdaki gibi bir demet içinde doğrudan programımıza dahil etmek için:
 veri = [# Yıl Ay Tahmin Yüksek Düşük (2004, 12, 34.2, 35.2, 33.2), (2005, 1, 31.5, 34.5, 28,5), # Daha fazla veriyle devam ediyor] 

Besleyeceğimiz bu verilerle grafiğimizin çizgilerini oluşturacağımızı belirtmekte fayda var.
Çoklu Çizgileri Kullanma
Devam etmeden önce çizgileri nasıl çizeceğimizi bilmeliyiz, bunun için kullanacağız Çoklu Çizgiler hangisi sadece bir ReportLab sınıfı Bu koordinatlardan çizgiler üretmemize izin verir, bu koordinatlar argüman olarak alınır. Şimdi basit bir grafiğin nasıl oluşturulacağını görelim.
PolyLine satırı ([(0, 0), (10, 0), (10, 10), (0, 10)]) ile aşağıdaki resimde gördüğümüz bir grafik oluşturabiliriz:

İlk Uygulama
Hangi araçlarla çalışacağımızı bildiğimize göre, programın ilk versiyonunu yapmamızın zamanı geldi.
Önce önerilen kodu göreceğiz, ardından nasıl çalıştığını açıklayacağız:
 Reportlab.lib'den renkleri reportlab.graphics.shapes'ten içe aktar * Reportlab.graphics'ten içe aktar renderPDF verilerini içe aktar = [(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),] çizim = Çizim (200, 150) pred = [satır [2] -40 verideki satır için] yüksek = [satır [3] -40 verideki satır için] düşük = [satır [4] -40 verideki satır için] çarpı = [200 * ( (satır [0] + satır [1] /12.0) - 2005) - verideki satır için -110 çizim.add (PolyLine (zip (zamanlar, pred), vuruşRenk = renkler.blue)) çizim.add (PolyLine (zip) (zaman, yüksek), vuruşRenk = renkler.red)) çizim.add (PolyLine (zip (zaman, düşük), vuruşRenk = renkler.green)) çizim.add (Dize (65, 115, 'Güneş lekeleri', fontSize = 18) , fillColor = renkler.red)) renderPDF.drawToFile (çizim, 'report1.pdf', 'Güneş lekeleri') 

Gerekli paketleri import ederek başladığımız kodda, renkler sınıfı Bu, grafikleri renkli çizmemize izin veriyor, sonra verilerimizi tanımlıyoruz, bu sefer daha eksiksiz bir grafik yapmak için çok daha fazla veri ekledik.
Biz somutlaştırıyoruz Çizim sınıfı ve sonra çevireceğimiz üç değişkeni hazırlıyoruz.
Sonunda onunla yöntem ekle önceden hazırlanmış verilerle tanımlanan değişkenleri dahil ediyoruz, 3 bölüme sahip olduğumuzda, yöntemle PDF'yi oluşturuyoruz DrawToFile ve sonunda aşağıdakine çok benzer bir şeye sahip olmalıyız:

Gördüğümüz gibi, birleştirilmiş verilere karşılık gelen çizgileri zaten çizdik, ancak yine de rapora biraz daha anlam vermemiz gerekiyor, bunun için kılavuz çizgileri dahil etmeliyiz, ancak bunun nasıl çalıştığını öğrendikten sonra gerisini bırakabiliriz. onlara.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave