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, 另外首次使用了 AnacondaPython distribution, 感觉太爽了, 该有的库都有了.
pygal and matplotlib(again)的更多相关文章
- 【Data Visual】一文搞懂matplotlib数据可视化
一文搞懂matplotlib数据可视化 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为 ...
- 【Matplotlib】数据可视化实例分析
数据可视化实例分析 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为要实现其功能用途而令 ...
- 安装matplotlib 和Pygal
一. 在Linux系统中安装matplotlib 如果我们使用的是系统自带的Python版本,可使用系统的包管理器来安装matplotlib,为此只需执行一行命令: $ sudo apt-get i ...
- Python3 数据可视化之matplotlib、Pygal、requests
matplotlib的学习和使用 matplotlib的安装 pip3 install matplotlib 简单的折线图 import matplotlib.pyplot as plt #绘制简单的 ...
- 初探Matplotlib
初探Matplotlib 例子来自此书: <Python编程从入门到实战>[美]Eric Matthes 使用pyplot绘图,一般的导入方法import matplotlib.pyplo ...
- Python之matplotlib画图
折线图: Matplotlib处理csv文件 这里写两个其他的. 柱状图,柱状图个人喜欢用pygal来画,有两篇文章 - Pygal之掷骰子 和 pygal之掷骰子 - 2颗面数为6的骰子.下面用ma ...
- python安装numpy、scipy和matplotlib等whl包的方法
最近装了python和PyCharm开发环境,但是在安装numpy和matplotlib等包时出现了问题,现总结一下在windows平台下的安装方法. 由于现在找不到了工具包新版本的exe文件,所以采 ...
- matplotlib 高级用法实例--共享x轴
http://localhost:8888/notebooks/duanqs/matplotlib_advanced_example.ipynb 我不会弄呀, 刚才从matplotlib文档里吧示例用 ...
- Python matplotlib笔记
可视化的工具有很多,如Tableau,各种JS框架,我个人感觉应该是学JS最好,因为JS不需要环境,每个电脑都有浏览器,而像matplotlib需要Python这样的开发环境,还是比较麻烦的,但是毕竟 ...
随机推荐
- bzoj1102: [POI2007]山峰和山谷Grz
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...
- POJ2456 Aggressive cows
Aggressive cows 二分,关键是转化为二分! #include <cstdio> #include <algorithm> ; ; int N, C; int a[ ...
- ubuntu常见错误--could not get lock /var/lib/dpkg/lock -open
最近研究ubuntu,用apt-get命令安装一些软件包时,总报错:E:could not get lock /var/lib/dpkg/lock -open等 出现这个问题的原因可能是有另外一个程序 ...
- POJ 2236 Wireless Network(并查集)
传送门 Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 24513 Accepted ...
- Beta版本冲刺第四天 12.10
一.站立式会议照片: 二.项目燃尽图: Android端 后台 三.项目进展: 成 员 昨天完成任务 今天完成任务 明天要做任务 问题困难 心得体会 胡泽善 日期合理性的判断,一个是用户反馈的查看 管 ...
- hdu 2007 - 平方和与立方和
题目大意: 给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和. 解答: 坑你没商量!要考虑输入数a,b的大小.如果a>b,需要交换a,b的值. 1: #include<s ...
- ubuntu下的ssh
ubuntu默认是没有安装openssh-server的,今天简单的写一下ubuntu上ssh的安装与使用. 一.服务器端 安装 apt-get install openssh-server #安装 ...
- RBAC权限设计实例
http://blog.csdn.net/painsonline/article/details/7183629 实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为 ...
- break; continue; goto; return在循环中的应用
1. break表示跳出循环,程序指向循环体后的第一条语句: ; ) { ) break; console.writeline("{0}",i++); } console.read ...
- Myeclipse如何设置字体大小
由于Myeclipse一般是英文版的,这就给英语不太好的人带来了一定的麻烦,有时连设置个字体都无法顺利进行!!! 工具/原料 Myeclipse 方法/步骤 双击启动Myeclipse 点击& ...