python使用pygal进行绘制数据图表和监控图表

 python使用pygal进行绘制数据图表和监控图表
2014-03-18 09:44:14
版权声明:原创作品,谢绝转载!否则将追究法律责任。

前言:

        说说python下绘制图表。以前绘制数据的图表一般用rrdtool或者是前端的图表js。先说说rrdtool。这东西是很强,cacti ganglia都用他,但是用起来有些麻烦,当然用熟悉了后还算可以 ,我一直都不咋喜欢用rrdtool,归档格式有些蛋疼,第二就是还要save成图片。。。。当然现在有库,可以直接根据url get参数,生成图片,压力还是在监控master端。。。 后者js的图表简单多了,我服务器端只是提供一个时间戳和value值的对应关系。 绘制图表还是让客户用浏览器自己去渲染。  压力不大的,以后的扩展也相当的好做,只是需要做库同步就行了。


    像我,这时候这是想测试下golang python ssdb的读写测试,测试程序还差点,先找个图表。在国外论坛发现了pygal,这东西相当的干练和简单,他的格式其实更像是highcharts之类的js图表 !

    用起来就简单,你只要把得到的数据,往一个地方一扔,然后用pygal直接就可以看了。   他是svg html的模式。

原文:http://rfyiamcool.blog.51cto.com/1030776/1378400

pygal使用相当的简单:

titile是图表的标题

x_labels是横轴的数据

剩下的是主数据

一个例子,pygal是一个html里面含有svg图表数据。


1
2
3
4
5
6
7
8
9
10
11
12
13
import  pygal
line_chart  =  pygal.Line()
line_chart.title  =  'Browser usage evolution (in %)'
line_chart.x_labels  =  [ '2002' '2003' '2004' '2005' '2006' '2007' '2008' '2009' '2010' '2011' '2012' ]
line_chart.add( 'Firefox' , [ 1 2 0 16.6 ,    25 ,    31 36.4 45.5 46.3 42.8 37.1 ])
line_chart.add( 'Chrome' ,  [ 3 2 5 77 43 22 ,     0 ,   3.9 10.8 23.8 35.3 ])
line_chart.add( 'IE' ,      [ 85.8 84.6 84.7 74.5 ,    66 58.6 54.7 44.8 36.2 26.6 20.1 ])
line_chart.add( 'Others' ,  [ 14.2 15.4 15.3 ,   8.9 ,     9 10.4 ,   8.9 ,   5.8 ,   6.7 ,   6.8 ,   7.5 ])
line_chart.render()
import  os
f = open ( 'aaa.html' , 'w' )
f.write(line_chart.render())
f.close()



1
2
3
4
5
6
7
8
9
import  pygal
line_chart = pygal.Line()
line_chart.title =  'xiaorui.cc'
line_chart.x_labels = [ '2002' '2003' '2004' '2005' '2006' '2007' '2008' '2009' '2010' '2011' '2012' ]
line_chart.add( 'Firefox' , [ 1 2 0 16.6 ,    25 ,    31 36.4 45.5 46.3 42.8 37.1 ])
line_chart.add( 'Chrome' ,  [ 3 2 5 77 43 22 ,     0 ,   3.9 10.8 23.8 35.3 ])
line_chart.add( 'IE' ,      [ 85.8 84.6 84.7 74.5 ,    66 58.6 54.7 44.8 36.2 26.6 20.1 ])
line_chart.add( 'Others' ,  [ 14.2 15.4 15.3 ,   8.9 ,     9 10.4 ,   8.9 ,   5.8 ,   6.7 ,   6.8 ,   7.5 ])
return  line_chart.render()



wKiom1MnFgCi2TmhAALPZqgR1Go614.jpg



1
2
3
4
5
6
7
8
line_chart = pygal.StackedLine(fill=True)
line_chart.title =  'xiaorui.cc'
line_chart.x_labels = map(str, range( 2002 2013 ))
line_chart.add( 'Firefox' , [None, None,  0 16.6 ,    25 ,    31 36.4 45.5 46.3 42.8 37.1 ])
line_chart.add( 'Chrome' ,  [None, None, None, None, None, None,     0 ,   3.9 10.8 23.8 35.3 ])
line_chart.add( 'IE' ,      [ 85.8 84.6 84.7 74.5 ,    66 58.6 54.7 44.8 36.2 26.6 20.1 ])
line_chart.add( 'Others' ,  [ 14.2 15.4 15.3 ,   8.9 ,     9 10.4 ,   8.9 ,   5.8 ,   6.7 ,   6.8 ,   7.5 ])
return  line_chart.render()

wKioL1MnFYzRCt7DAAIvCgTlzrA992.jpg

原文:http://rfyiamcool.blog.51cto.com/1030776/1378400


1
2
3
4
5
6
7
8
pie_chart = pygal.Pie()
pie_chart.title =  'xiaorui.cc'
pie_chart.add( 'IE' 19.5 )
pie_chart.add( 'Firefox' 36.6 )
pie_chart.add( 'Chrome' 36.3 )
pie_chart.add( 'Safari' 4.5 )
pie_chart.add( 'Opera' 2.3 )
return  pie_chart.render()

wKioL1MnF1ejBn25AAFstPKEq-Q280.jpg



1
2
3
4
5
6
7
8
9
worldmap_chart = pygal.Worldmap()
worldmap_chart.title =  'Some countries'
worldmap_chart.add( 'F countries' , [ 'fr' 'fi' ])
worldmap_chart.add( 'M countries' , [ 'ma' 'mc' 'md' 'me' 'mg' ,
                                'mk' 'ml' 'mm' 'mn' 'mo' ,
                                'mr' 'mt' 'mu' 'mv' 'mw' ,
                                'mx' 'my' 'mz' ])
worldmap_chart.add( 'U countries' , [ 'ua' 'ug' 'us' 'uy' 'uz' ])
return  worldmap_chart.render()

wKiom1MnFq7CytBUAAI7naAHOms964.jpg



改成监控那就更简单了,只要格式化数据,放到x轴和y轴就行了。



不多说,怎么玩就看你自己了。


  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值