`
xiaoshenge
  • 浏览: 166814 次
  • 性别: Icon_minigender_1
  • 来自: 十堰
社区版块
存档分类
最新评论

python实现iteye博客归档的条形图

 
阅读更多

iteye博客中的归档只是简单的日期数量统计,查看自己写博客情况不是很直观,一直都想他们都有一个这样的功能,结果一直都没有,加上自己最近学了一点python就自己实现了(python刚入门好多东西不懂),不过如果iteye也能实现自己添加插件的功能,这样我这个功能也能是一个插件(自己yy)。

先看效果:




 下面贴代码:

 

 

import urllib
import urllib2
import re
import reportlab

url = 'http://xiaoshenge.iteye.com/blog/monthblog_more'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }

request = urllib2.Request(url, '', headers)
response = urllib2.urlopen(request)
html = response.read()

p = re.compile('<li><a href="/blog/monthblog/(.*?)">.*</a> \((.*?)\)</li>')
datas = []
for date,total in p.findall(html):
    data = (date,int(total))
    datas.append(data)


import sys
import cairo
import pycha.line

surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 800, 600)

dataSet = (
    ('lines', [(i, l[1]) for i, l in enumerate(datas)]),
)



options = {
    'axis': {
        'x': {
            'ticks': [dict(v=i, label=l[0]) for i, l in enumerate(datas)],
        },
        'y': {
            'tickCount': len(datas),
        },
        'background': {
            'name': 'gradient',
            'args': {'initialColor': 'blue',},
        },
        'legend': {'hide': True,},
        'padding': {'left': 55,'bottom': 40,}
    }
}
chart = pycha.line.LineChart(surface,options)
chart.addDataset(dataSet)
chart.render()
surface.write_to_png('test.png')
  • 大小: 6 KB
  • 大小: 38.6 KB
1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics