Python的reportlab专门将数据使用生成PDF中的图形和文档功能,
下载ReportLab
https://pypi.python.org/simple/reportlab/
http://www.reportlab.com/software/opensource/rl-toolkit/download/
生成一个简单的helloworld
from reportlab.graphics.shapes import Drawing, String from reportlab.graphics import renderPDF d = Drawing(100, 100) s = String(50, 50, 'Hello, world!', textAnchor='middle') d.add(s) renderPDF.drawToFile(d, 'hello.pdf', 'A simple PDF file')
三条折线
from reportlab.lib import colors from reportlab.graphics.shapes import * from reportlab.graphics import renderPDF data = [ # Year Month Predicted High Low (2007, 8, 113.2, 114.2, 112.2), (2007, 9, 112.8, 115.8, 109.8), (2007, 10, 111.0, 116.0, 106.0), (2007, 11, 109.8, 116.8, 102.8), (2007, 12, 107.3, 115.3, 99.3), (2008, 1, 105.2, 114.2, 96.2), (2008, 2, 104.1, 114.1, 94.1), (2008, 3, 99.9, 110.9, 88.9), (2008, 4, 94.8, 106.8, 82.8), (2008, 5, 91.2, 104.2, 78.2), ] drawing = Drawing(200, 150) pred = [row[2]-40 for row in data] high = [row[3]-40 for row in data] low = [row[4]-40 for row in data] times = [200*((row[0] + row[1]/12.0) - 2007)-110 for row in data] 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(drawing, 'report1.pdf', 'Sunspots')
最终的sunspot