yanfei 发表于 2017-5-5 09:20:42

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) for i, l in enumerate(datas)]),
)

options = {
'axis': {
'x': {
'ticks': ) 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')
页: [1]
查看完整版本: python实现iteye博客归档的条形图