這篇文章主要介紹了python使用reportlab畫圖示例,大家參考使用吧
准備工作 開發環境: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()