python使用reportlab画图示例(含中文汉字)


Posted in Python onDecember 03, 2013

准备工作

开发环境:python2.6,reportlab

准备中文字体文件:simsun.ttc

代码:

#!/usr/bin/env python2.6
#coding:utf-8
import traceback
from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.lineplots import LinePlot
from reportlab.graphics.charts.textlabels import Label
from reportlab.graphics import renderPDF
from reportlab.graphics.widgets.markers import makeMarker
from reportlab.pdfbase import pdfmetrics, ttfonts
#注意data的类型,
#每一个数据点是一个元组
#一条曲线对应一个存储数据点元组的元组
#一个图形可以包含多条曲线,用列表存储曲线元组
data=[((1,100),(2,200),(3,300),(4,400),(5,500)),((1,50),(2,80),(3,400),(4,40),(5,70))]
drawing = Drawing(500, 300)
lp = LinePlot()
lp.x = 50 #坐标轴中心坐标
lp.y = 30
lp.height = 250
lp.width = 400
lp.data = data
lp.joinedLines = 1
lp.lines.symbol = makeMarker('FilledCircle')
lp.xValueAxis.valueMin = 1
lp.xValueAxis.valueMax = 5
lp.xValueAxis.valueStep = 1
lp.yValueAxis.valueMin = 0
lp.yValueAxis.valueMax = 500
lp.yValueAxis.valueStep = 100
drawing.add(lp)
title = Label()
#若需要显示中文,需要先注册一个中文字体
pdfmetrics.registerFont(ttfonts.TTFont("haha", "simsun.ttc"))
title.fontName   = "haha"
title.fontSize   = 12
title_text = unicode('你好','gbk')
#title_text = "abc"
title._text = title_text
title.x          = 250
title.y          = 280
title.textAnchor ='middle'
drawing.add(title)
Xlabel = Label()
Xlabel._text = 'x'
Xlabel.fontSize   = 12
Xlabel.x          = 480
Xlabel.y          = 30
Xlabel.textAnchor ='middle'
drawing.add(Xlabel)
Ylabel = Label()
Ylabel._text = "y"
Ylabel.fontSize   = 12
Ylabel.x          = 40
Ylabel.y          = 295
Ylabel.textAnchor ='middle'
drawing.add(Ylabel)
try:
     drawing.save(formats=['gif'],outDir=".",fnRoot="abc")
except:
     traceback.print_exc()
Python 相关文章推荐
Python实现115网盘自动下载的方法
Sep 30 Python
python使用mailbox打印电子邮件的方法
Apr 30 Python
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
Python实现将Excel转换为json的方法示例
Aug 05 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
Python基于贪心算法解决背包问题示例
Nov 27 Python
Python中用psycopg2模块操作PostgreSQL方法
Nov 28 Python
Python单元测试unittest的具体使用示例
Dec 17 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 Python
使用python实现多维数据降维操作
Feb 24 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
Python 恐龙跑跑小游戏实现流程
Feb 15 Python
python33 urllib2使用方法细节讲解
Dec 03 #Python
python使用mysqldb连接数据库操作方法示例详解
Dec 03 #Python
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
Dec 03 #Python
python paramiko实现ssh远程访问的方法
Dec 03 #Python
Python使用urllib2获取网络资源实例讲解
Dec 02 #Python
python读写文件操作示例程序
Dec 02 #Python
python通过ElementTree操作XML获取结点读取属性美化XML
Dec 02 #Python
You might like
PHP连接SQLServer2005的方法
2015/01/27 PHP
微信公众平台开发之配置与请求
2015/08/26 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
2017/04/18 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
Django中URLconf和include()的协同工作方法
2015/07/20 Python
python3使用urllib模块制作网络爬虫
2016/04/08 Python
python实现京东秒杀功能
2018/07/30 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
Python 自由定制表格的实现示例
2020/03/20 Python
深入了解Python enumerate和zip
2020/07/16 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
全方位了解CSS3的Regions扩展
2015/08/07 HTML / CSS
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
适用于所有创业者的创业计划书
2014/02/05 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
《所见》教学反思
2016/02/23 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers