Win7,64位,Python使用reportlab画图并生成为pdf文件

参考《Python基础教程(第二版)》


选用reportlab,因为它很容易使用并且为pdf中的图形和文档生成提供了丰富的功能。


reportlab的安装,参见:Win7,64位下Python3.5.2,安装reportlab(whl文件)

安装reportlab成功后,可以像下面这样导入reportlab模块:

>>> import reportlab
>>> 


程序步骤:

·分析数据(数据以一系列元组的形式放入源代码);

·创建基于数据的pdf文件。


太阳黑子图形程序(sunspots_roto.py)

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))   #Python2.x
#drawing.add(PolyLine(zip(times, high), strokeColor=colors.red))
#drawing.add(PolyLine(zip(times, low), strokeColor=colors.green))
drawing.add(PolyLine(list(zip(times, pred)), strokeColor=colors.blue))#Python3.x
drawing.add(PolyLine(list(zip(times, high)), strokeColor=colors.red))
drawing.add(PolyLine(list(zip(times, low)), strokeColor=colors.green))
drawing.add(String(65, 115, 'Sunspots', fontSize=18, fillColor=colors.red))

renderPDF.drawToFile(drawing, 'report1.pdf', 'Sunspots')


结果显示如下:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值