reportlab初步

1.简介
reportlab是一个用python语言写的图形生成包。

2. 安装

环境:
win7 64bit
cygwin 64bit
gcc 4.8.3
python 2.7
pip 1.5.6
reportlab 3.1.8
pillow 2.6.1


事先,请在cygwin里安装好gcc,如果没有gcc,安装reportlab会报错。
然后使用pip安装reportlab
pip install reportlab

如果pillow事先没有安装的话,reportlab会自动下载安装pillow(Python Imaging Library)。

3. 一个例子
我们来绘制一幅太阳黑子的折线图。
以下代码出自《Python基础教程(第二版)》,我稍微修改了一些地方。
代码的功能是输出一个PDF文件,里面绘制了太阳黑子的历史数据。

from urllib import urlopen
from reportlab.graphics.shapes import *
from reportlab.graphics.charts.lineplots import LinePlot
from reportlab.graphics.charts.textlabels import Label
from reportlab.graphics import renderPDF

URL = 'http://www.swpc.noaa.gov/ftpdir/weekly/RecentIndices.txt'
COMMENT_CHARS = '#:'


drawing = Drawing(400, 200)
data = []
for line in urlopen(URL).readlines():
    if not line.isspace() and not line[0] in COMMENT_CHARS:
        data.append([float(n) for n in line.split()])

swo = [row[2] for row in data]
ri = [row[3] for row in data]
times = [row[0] + row[1]/12.0 for row in data]

lp = LinePlot()
lp.x = 50
lp.y = 50
lp.height = 125
lp.width = 300
lp.data = [zip(times, swo), zip(times, ri)]
lp.lines[0].strokeColor = colors.blue
lp.lines[1].strokeColor = colors.red

drawing.add(lp)

drawing.add(String(250, 150, 'Sunspots',
            fontSize=14, fillColor=colors.red))


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


一些百科知识:
太阳黑子(sunspot),活动周期为11.2年。
SWO: SWPC Space Weather Operations.
RI: S.I.D.C. Brussels International Sunspot Number.

效果如图

猜你喜欢

转载自xpenxpen.iteye.com/blog/2161371
今日推荐