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 相关文章推荐
TF-IDF算法解析与Python实现方法详解
Nov 16 Python
Python中用psycopg2模块操作PostgreSQL方法
Nov 28 Python
python实现SOM算法
Feb 23 Python
python 识别图片中的文字信息方法
May 10 Python
Python应用库大全总结
May 30 Python
解决PyCharm的Python.exe已经停止工作的问题
Nov 29 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
python装饰器使用实例详解
Dec 14 Python
Python实现AI换脸功能
Apr 10 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
Mar 02 Python
ROS系统将python包编译为可执行文件的简单步骤
Jul 25 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
Apr 13 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
与数据库连接
2006/10/09 PHP
PHP读写文件的方法(生成HTML)
2006/11/27 PHP
php 模拟get_headers函数的代码示例
2013/04/27 PHP
一个漂亮的php验证码类(分享)
2013/08/06 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
简洁短小的 JavaScript IE 浏览器判定代码
2010/03/21 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
2015/12/03 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
vue-cli项目代理proxyTable配置exclude的方法
2018/09/20 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
Python标准库inspect的具体使用方法
2017/12/06 Python
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
Python列表推导式与生成器用法分析
2018/08/02 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
pytorch的batch normalize使用详解
2020/01/15 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
基于django 的orm中非主键自增的实现方式
2020/05/18 Python
python中pow函数用法及功能说明
2020/12/04 Python
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
车间安全生产标语
2014/06/06 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS
PYTHON InceptionV3模型的复现详解
2022/05/06 Python