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')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值