当前位置: 代码迷 >> 报表 >> reportlab初始
  详细解决方案

reportlab初始

热度:237   发布时间:2016-04-29 02:04:19.0
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 urlopenfrom reportlab.graphics.shapes import *from reportlab.graphics.charts.lineplots import LinePlotfrom reportlab.graphics.charts.textlabels import Labelfrom reportlab.graphics import renderPDFURL = '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 = 50lp.y = 50lp.height = 125lp.width = 300lp.data = [zip(times, swo), zip(times, ri)]lp.lines[0].strokeColor = colors.bluelp.lines[1].strokeColor = colors.reddrawing.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.

效果如图

  相关解决方案