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实现Linux下守护进程的编写方法
Aug 22 Python
python使用matplotlib绘制柱状图教程
Feb 08 Python
Python使用Pickle库实现读写序列操作示例
Jun 15 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
python标记语句块使用方法总结
Aug 05 Python
Python 实现的 Google 批量翻译功能
Aug 26 Python
python爬虫模拟浏览器访问-User-Agent过程解析
Dec 28 Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 Python
基于Python中random.sample()的替代方案
May 23 Python
python中return不返回值的问题解析
Jul 22 Python
10个python爬虫入门实例(小结)
Nov 01 Python
Python 实现集合Set的示例
Dec 21 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处理json时中文问题的解决方法
2011/04/12 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
Python的标准模块包json详解
2017/03/13 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
Django ModelForm操作及验证方式
2020/03/30 Python
Python extract及contains方法代码实例
2020/09/11 Python
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
JD Sports西班牙:英国领先的运动服装公司
2020/01/06 全球购物
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
大学生的自我鉴定范文
2014/01/21 职场文书
课程改革实施方案
2014/03/16 职场文书
物流管理专业自荐信
2014/06/23 职场文书
2014年商场工作总结
2014/11/22 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
匿名信格式范文
2015/05/27 职场文书
九年级英语教学反思
2016/02/15 职场文书
调研报告的主要写法
2019/04/18 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书