发新话题
打印

python图形库

python图形库

Python的13大图形库,matplotlib功能最强大,Cairoplot最漂亮,django-chartit与Django集成了。列表及介绍如下:

1.matplotlib,

官网:http://matplotlib.sourceforge.net/ ,Matplotlib 是一个由 John Hunter 等开发的,用以绘制  二维图形的 Python 模块。它利用了 Python 下的数值计算模块 Numeric 及 Numarray,克隆了许多 Matlab 中的函数, 用以帮助用户轻松地获得高质量的二维图形。Matplotlib 可以绘制多种形式的图形包括普通的线图,直方图,饼图,散点图以及误差线图等;可以比较方便的定制图形的各种属性比如图线的类型,颜色,粗细,字体的大小 等;它能够很好地支持一部分 TeX 排版命令,可以比较美观地显示图形中的数学公式。个人比较推荐这个类库。可以用于生成通常是由 matlab 或者 Mathematica 生成的高质量图表。

2.Cairoplot

官网:http://linil.wordpress.com/2008/09/16/cairoplot-11/ ,(友情提示:需要翻墙)。Cairoplot在网页上的表现力堪比flex中的图表图形效果。非常漂亮,非常赞!但是这个似乎只能跑在linux平台上。所以很多windows用户估计要失望了。

3.Chaco

官网:http://code.enthought.com/chaco/ ,Chaco是一个2D的绘图库。其中文简单教程参考:http://hyry.dip.jp/pydoc/chaco_intro.html

更多资料:

        http://cairoplot.sourceforge.net/index.html
        https://github.com/rodrigoaraujo01/cairoplot
        https://groups.google.com/forum/?fromgroups#!forum/cairoplot

4.Python Google Chart,

官网:http://pygooglechart.slowchop.com/ 。从命名方式来看,这个肯定与google chart扯上了关系。所以该类库是对Google chart API的一个完整封装。

5.PyCha,

官网:https://bitbucket.org/lgs/pycha/wiki/Home 。PyCha可是说是Cairo 类库的一个简单封装,为了是实现轻量级,以及容易使用,当然还做了一些优化等。

6.pyOFC2,

官网:http://btbytes.github.com/pyofc2/ 。它是Open Falsh Library的Python类库。所以图形具有Flash效果,可以随鼠标移动动态显示图标中信息,这是优越于其他静态图示的。

7.Pychart,

官网:http://home.gna.org/pychart/ 。pyChart是用于创建高品质封装的PostScript,PDF格式,PNG,或SVG图表Python库。

8.PLPlot,

官网:http://plplot.sourceforge.net/ 。PLPlot是用于创建科学图表的跨平台软件包。以C类库为核心,支持各种语言绑定(C, C++, Fortran, Java, Python, Perl etc.)。开源免费。

9.reportlab,

官网:http://www.reportlab.com/software/opensource/ 。这个我们之前介绍过,参考http://www.codecho.com/installat ... eportlab-in-python/ 。这个类库支持在pdf中画图表。

10.Vpython,

官网:http://www.vpython.org/index.html ,VPython是Visual Python的简写,Visual是由Carnegie Mellon University(卡耐基-梅隆大学)在校学生David Scherer于2000年撰写的一个Python 3D绘图模块。

11.Pycairo

http://cairographics.org/pycairo/  Pycairo is a set of Python bindings for the cairo graphics library.

12.panda3d

http://www.panda3d.org/ Panda3D不像是一个画基本图表的东东,它是一个 3D 引擎,用于三维图形的演示及游戏开发。程序库采用C++以及Python语言来绑定。用panda3d进行游戏开发通常写一段Python或C + +程序控制panda3d程序库。

13.django-chartit

非常漂亮的,并且与Django集成哦,它与MYSQL数据库集成了~

        http://chartit.shutupandship.com
        https://github.com/pgollakota/django-chartit

最后,如果JS还可以的话,大家也可以使用 highcharts.js 与Django 来自己写图表:http://www.highcharts.com/
乐乎设计,乐乎生活~

TOP

乐乎设计,乐乎生活~

TOP

乐乎设计,乐乎生活~

TOP

不知道photoshop有没有能不能批量导出没有透明像素的图片。反正我没有找到,我只能用最最老土的方法了。就是用python来对导出的图片分析。删除我们不要的透明像素。下边是使用python读取图片像素值的方法。

用image模块,可以用getpixel获得像素值,给你个例子吧。得到的像素值应该是(R,G,B,A),大家读读看每个图片是什么。
复制内容到剪贴板
代码:
#!/usr/bin/env python  
import Image  
import sys   
im = Image.open(sys.argv[1])  
width = im.size[0]  
height = im.size[1]  
print "/* width:%d */"%(width)  
print "/* height:%d */"%(height)  
count = 0   
for h in range(0, height):  
  for w in range(0, width):  
    pixel = im.getpixel((w, h))   
    for i in range(0,3):  
      count = (count+1)%16  
      if (count == 0):   
        print "0x%02x,/n"%(pixel[i]),  

      else:  
        print "0x%02x,"%(pixel[i]),
这样我们就可以遍历整个图片像素了,在其中找出我们图片像素不是透用的区域,然后使用下边的方法把图片截取出来并保存:
box = (100,100,500,500)#设置要拷贝的区域,这是我们找到的有像素的区域。
#将im表示的图片对象拷贝到region中,大小为(400*400)像素。这个region可以用来后续的操作(region其实就是一个Image对象),box变量是一个四元组(左,上,右,下)。
region = im.crop(box)
region.save( "fileout.png" )
下边是一个不错的教程。 

http://onlypython.group.iteye.co ... ibrary-introduction
另一个教程:
http://www.blogjava.net/Skynet/archive/2009/11/28/303986.html
一个使用pil制作验证码的方法:
http://ju.outofmemory.cn/entry/34825
乐乎设计,乐乎生活~

TOP

发新话题