Python数据可视化:使用pyecharts和snapshot绘制精美图表

Python数据可视化:使用pyecharts和snapshot绘制精美图表

作者 : totorocyx    邮箱 : [email protected]

Echarts 是百度开源的一个数据可视化 JS 库。主要用于数据可视化。 点击访问官网
pyecharts 是一个用于生成 Echarts 图表的类库。实际上就是 Echarts 的 Python 接口。
GitHub传送门:GitHub


(一)pyecharts的安装

pip install pyecharts

然后打开一个python或ipython终端,输入:

from pyecharts import Bar

若没有报错,即安装成功。

推荐使用ipython notebook,可以即时显示动态图像。下面给出一个绘制例子:

from pyecharts import Bar

attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [5, 20, 36, 10, 75, 90]
v2 = [10, 25, 8, 60, 20, 80]
bar = Bar("柱状图数据堆叠示例")
bar.add("商家A", attr, v1, is_stack=True)
bar.add("商家B", attr, v2, is_stack=True)
bar.render()

GIF效果图如下:
Python数据可视化:使用pyecharts和snapshot绘制精美图表_第1张图片

具体绘制功能可以参考 官方中文版帮助文档

(二)和pyecharts-snapshot结合,导出图像

绘制出图像后,图像右侧有“下载到本地”的功能按钮,但是目前只支持png格式。若需要保存为其它格式(如jpeg、pdf等),需结合插件来进一步实现。尤其是需要将图片插入到论文中时,png格式的图片放大了会很模糊。这时候就需要使用pyecharts-snapshot将其转换为pdf格式,以最大限度保留清晰度。

Step① 要使用snapshot,需先确保电脑正确安装Phantomjs,才能正常工作,否则会报错。安装教程如下:

先寻找适合自己系统的版本进行下载,下载链接:Phantomjs下载

Linux系统(以Ubuntu为例)
# 更新软件列表 & 更新软件
sudo apt-get update    
sudo apt-get upgrade

# 下载包
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.5.0-beta-linux-ubuntu-xenial-x86_64.tar.gz
# 解压
tar -xzvf phantomjs-2.5.0-beta-linux-ubuntu-xenial-x86_64.tar.gz
# 进入路径
cd phantomjs-2.5.0-beta-ubuntu-xenial/bin
# 赋予权限
chmod +x phantomjs
# 查看版本号
phantomjs -v  
# 若显示版本号,如 2.1.1 则生效
Mac OS系统

下载后解压,放在自己喜欢的位置,然后打开终端:

# 进入bin目录
cd phantomjs-2.5.0-beta-ubuntu-xenial/bin
# 赋予权限(这一步很重要)
chmod +x phantomjs
# 编辑根目录下的.bash_profile文件
vi .bash_profile
# 在底部添加如下一行
# 其中/Users/Documents/phantomjs-2.1.1-macosx/bin/是我的bin目录的路径
export PATH="/Users/Documents/phantomjs-2.1.1-macosx/bin/:$PATH"
# 使其生效
source .bash_profile

# 查看版本号
phantomjs -v  
# 若显示版本号,如 2.1.1 则生效

Step② 安装pyecharts-snapshot

# 安装
pip install pyecharts-snapshot

安装完毕。具体使用方法是,先绘制图像,然后库中的函数make_a_snapshot进行保存,见如下示例代码:

from pyecharts import Line, Pie, Grid
from pyecharts_snapshot.main import make_a_snapshot

attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [5, 20, 36, 10, 10, 100]
v2 = [55, 60, 16, 20, 15, 80]
line = Line("折线图示例")
line.add("商家A", attr, v1, mark_point=["average"])
line.add("商家B", attr, v2, is_smooth=True, mark_line=["max", "average"])
line.render('test.html')

make_a_snapshot('test.html', 'test.pdf')

这样test.pdf就保存在当前工作目录下了。

P.S. 还有一种使用方法,就是先绘制出图像,并且有使用render函数生成html,那么在html文件所在工作目录下,打开终端,输入:

snapshot render.html pdf

snapshot函数后的第一个参数是要转换的html文件,第二个参数是要输出的格式。回车运行即可。具体可见官方参考文档。


(END)

你可能感兴趣的:(Python学习笔记)