zoukankan      html  css  js  c++  java
  • pygal and matplotlib(again)

    之前项目有用过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, 另外首次使用了 Anaconda Python distribution, 感觉太爽了, 该有的库都有了.

  • 相关阅读:
    Volume serial number could associate file existence on certain volume
    分区表收集统计信息
    数据泵导入外键表数据报错
    Oracle备份优化开启块改变跟踪
    Oracle asm lib存储扩容及测试
    ASM_Lib_linux_redhat6.9添加asm磁盘扩容
    ogg清理无法自动清理导致占用大量空间处理
    应用复制进程abend,报错OGG-01163字段列长度不够
    历史备份过多使用delete obsolete方式找不到过期备份信息???
    测试使用块跟踪文件
  • 原文地址:https://www.cnblogs.com/harrychinese/p/pygal_and_matplotlib.html
Copyright © 2011-2022 走看看