之前项目有用过pygal做chart图, 写代码很容易,几行代码就很做出一个看上去还不错的chart, 缺点是: 要调的再美观很难, Web上的交互效果较差. 在web上做可视化还是推荐采用Echarts或HighCharts  Javascript库.

碰到个需求, 需要在pptx中生成chart图, 这个需求没有交互性要求, 需要封装成web service, 因为之前有使用pygal的经验, 这次打算继续使用pygal. 总体思路, 使用pygal生成chart矢量图, 然后到导出成png图片文件, 最后再将图片合并到pptx中.

参考文章 Creating Powerpoint Presentations with Python
http://pbpython.com/creating-powerpoint.html

===================
pygal
===================
pygal导出png的功能, 需要安装tinycss, cssselect, cairosvg(或pycairo)包.  tinycss, cssselect安装很简单. 对于cairosvg(或pycairo)包, pygal 推荐的是cairosvg, 好像是因为cairosvg安装相对简单些, 但我发现这货安装也很复杂, python包的依赖比较多, 分别是:
    pycparser  
    cffi,
    cairocffi,
    cairosvg

其中, cairocffi 用pip和easyinstall安装都未成功, 直接解压文件到site-packages, 完成安装.
另外, CairoSVG 其实是 cairo C类库的binding, 所以还需要安装cairo库 , windows版编译版和安装见下面的so讨论.
http://stackoverflow.com/questions/28211418/python-oserror-cannot-load-library-libcairo-so-2
我按照 Sk8erPeter 的建议的步骤, 完成了全部的配置.

下面是 pycairo 的windows 预编译版, 我暂时没用到, 也未做测试.
http://www.salsabeatmachine.org/python/pycairo-win32-packages.html
http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.8/pycairo-1.8.10.win32-py2.7.exe

===================
matplotlib
===================
我顺便调研了一下使用matplotlib如何在web上展现图片. matplotlib和pygal相比, 灵活性强多了, 功能更加强大, 几乎能画出任何类型的chart.  
见Miguel 大牛的答复: http://stackoverflow.com/questions/20107414/passing-a-matplotlib-figure-to-html-flask

20150915补记, 因为pygal限制太多, 项目最后采用了matplotlib, 另外首次使用了 AnacondaPython distribution, 感觉太爽了, 该有的库都有了.

pygal and matplotlib(again)的更多相关文章

  1. 【Data Visual】一文搞懂matplotlib数据可视化

    一文搞懂matplotlib数据可视化 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为 ...

  2. 【Matplotlib】数据可视化实例分析

    数据可视化实例分析 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为要实现其功能用途而令 ...

  3. 安装matplotlib 和Pygal

    一.  在Linux系统中安装matplotlib 如果我们使用的是系统自带的Python版本,可使用系统的包管理器来安装matplotlib,为此只需执行一行命令: $ sudo apt-get i ...

  4. Python3 数据可视化之matplotlib、Pygal、requests

    matplotlib的学习和使用 matplotlib的安装 pip3 install matplotlib 简单的折线图 import matplotlib.pyplot as plt #绘制简单的 ...

  5. 初探Matplotlib

    初探Matplotlib 例子来自此书: <Python编程从入门到实战>[美]Eric Matthes 使用pyplot绘图,一般的导入方法import matplotlib.pyplo ...

  6. Python之matplotlib画图

    折线图: Matplotlib处理csv文件 这里写两个其他的. 柱状图,柱状图个人喜欢用pygal来画,有两篇文章 - Pygal之掷骰子 和 pygal之掷骰子 - 2颗面数为6的骰子.下面用ma ...

  7. python安装numpy、scipy和matplotlib等whl包的方法

    最近装了python和PyCharm开发环境,但是在安装numpy和matplotlib等包时出现了问题,现总结一下在windows平台下的安装方法. 由于现在找不到了工具包新版本的exe文件,所以采 ...

  8. matplotlib 高级用法实例--共享x轴

    http://localhost:8888/notebooks/duanqs/matplotlib_advanced_example.ipynb 我不会弄呀, 刚才从matplotlib文档里吧示例用 ...

  9. Python matplotlib笔记

    可视化的工具有很多,如Tableau,各种JS框架,我个人感觉应该是学JS最好,因为JS不需要环境,每个电脑都有浏览器,而像matplotlib需要Python这样的开发环境,还是比较麻烦的,但是毕竟 ...

随机推荐

  1. bzoj1102: [POI2007]山峰和山谷Grz

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  2. POJ2456 Aggressive cows

    Aggressive cows 二分,关键是转化为二分! #include <cstdio> #include <algorithm> ; ; int N, C; int a[ ...

  3. ubuntu常见错误--could not get lock /var/lib/dpkg/lock -open

    最近研究ubuntu,用apt-get命令安装一些软件包时,总报错:E:could not get lock /var/lib/dpkg/lock -open等 出现这个问题的原因可能是有另外一个程序 ...

  4. POJ 2236 Wireless Network(并查集)

    传送门  Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 24513   Accepted ...

  5. Beta版本冲刺第四天 12.10

    一.站立式会议照片: 二.项目燃尽图: Android端 后台 三.项目进展: 成 员 昨天完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 日期合理性的判断,一个是用户反馈的查看 管 ...

  6. hdu 2007 - 平方和与立方和

    题目大意: 给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和. 解答: 坑你没商量!要考虑输入数a,b的大小.如果a>b,需要交换a,b的值. 1: #include<s ...

  7. ubuntu下的ssh

    ubuntu默认是没有安装openssh-server的,今天简单的写一下ubuntu上ssh的安装与使用. 一.服务器端 安装 apt-get install openssh-server #安装 ...

  8. RBAC权限设计实例

    http://blog.csdn.net/painsonline/article/details/7183629 实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为 ...

  9. break; continue; goto; return在循环中的应用

    1. break表示跳出循环,程序指向循环体后的第一条语句: ; ) { ) break; console.writeline("{0}",i++); } console.read ...

  10. Myeclipse如何设置字体大小

    由于Myeclipse一般是英文版的,这就给英语不太好的人带来了一定的麻烦,有时连设置个字体都无法顺利进行!!! 工具/原料   Myeclipse 方法/步骤   双击启动Myeclipse 点击& ...