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中 logging的使用详解
Oct 25 Python
python爬虫面试宝典(常见问题)
Mar 02 Python
Windows下python3.6.4安装教程
Jul 31 Python
Python模块的加载讲解
Jan 15 Python
Python 实现域名解析为ip的方法
Feb 14 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
May 05 Python
解决yum对python依赖版本问题
Jul 05 Python
使用Python函数进行模块化的实现
Nov 15 Python
Python双链表原理与实现方法详解
Feb 22 Python
基于Python实现简单学生管理系统
Jul 24 Python
python实现批处理文件
Jul 28 Python
python游戏开发之pygame实现接球小游戏
Apr 22 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延迟静态绑定实例分析
2015/02/08 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
jquery 合并内容相同的单元格(示例代码)
2013/12/13 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
vue 表单验证按钮事件交由父组件触发的方法
2018/12/17 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
js实现时间日期校验
2020/05/26 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
js实现详情页放大镜效果
2020/10/28 Javascript
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
Python函数式编程
2017/07/20 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
Python如何定义有可选参数的元类
2020/07/31 Python
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
挪威手表购物网站:Klokker
2016/09/19 全球购物
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
二手书店创业计划书
2014/01/16 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
《角的度量》教学反思
2016/02/18 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
浅谈python数据类型及其操作
2021/05/25 Python
ubuntu下常用apt命令介绍
2022/06/05 Servers