Python 绘制精美可视化数据分析图表 (二)-pyecharts
前言
画图表就是为了把复杂的事情表达清楚,画图表还可以弥补单用文字表达的缺欠,对有些事物解说更直接、更具体。就像我们平时会议所用的 PPT,能够更直观呈现讲述者所想表达的意思,且通俗易懂。总的来说,使用图表可以化复杂为简洁,化抽象为具体,使读者或听众更容易理解。
图表能跟直观表达和揭示数据的规律,人对图像更加敏感,对图文并茂的事物更容易接受,阅读更加简单高效,而且图表更显专业性,更具有说服力,更有利于沟通。
在上一篇文章《Python 绘制精美可视化数据分析图表 (一)-Matplotlib》中我们已经讲述过数据分析和绘制数据分析图表的好处,这里就不再赘述。直奔主题:pyecharts 是什么?有什么用?如何使用?接下来我们一起探讨交流。
首先我们来说说
pyecharts 是什么?有什么用?
pyecharts 是一个用于生成 Echarts 图表的类库,众所周知,Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,可视化的类型丰富,不但提供了很多图表的实现方式,还提供了自定义的能力,可扩展出不同的图表,支持用户交互,且支持多种数据格式,大量数据也能流畅展现,支持动态数据的动画展示,同时还支持三维可视化,最重要的是能够跨平台,不管是 PC 还是各种移动端,多端完美适应,更适合我们日常的开发需求。而 pyecharts 就是 Echarts 的 Python 实现,同样拥有和 Echarts 一样强大的绘图能力。使 Python 和 Echarts 能更好对接,也是一把数据分析的利器。
pyechart 的特性:
基础的 API 设计使用如丝般流畅,支持链式调用
囊括了 30+种常见的图形,有应尽有
支持笔记 JupyterLab 环境,pyter Notebook
可轻松集成至 Django 等 WebFlask 框架
高度灵活的配置,可搭配出高性能的图形项
详细的文档和示例,帮助开发者上手项目
多达 400+个文件以及澳大利亚的地图,为地理数据可视化提供地图的支持
了解了 pyecharts 的来源和作用,最重要当然是学会使用它。如何使用?让我们继续往下看。
准备
安装
pyecharts 官网:https://pyecharts.org
pyecharts 分为两个大间版本 v0.5.X 和 v1 v0.5.X 和 v1 大间版本,v1 是一个全新的版本。0.5.x 版本将不再进行维护,0.5.x 版本代码位于 05x 分支,支持 Python2.7,3.4+。而 v1 仅支持 Python3.6+。
安装跟其他 Python 库安装一样简单,命令如下:(推荐)
pip install pyecharts
或 pip3 install pyecharts

还可以使用源码编译安装,推荐使用 pip 命令直接安装,避免不必要的麻烦,除非你有定制 pyecharts 的需求
查看安装版本

使用体验
安装完当然就是用起来,就跟学习一门语言一样,我们先快速上手,来个 Hello world.pyecharts 跟其他 Python 库一样使用简单,学习成本低.这就是他的优秀之处,matplotlib 能实现的 pyecharts 同样有.
导包
按需导入
上述例子同样可支持使用链式调用

render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
也可以传入路径参数,如 bar.render("hello.html")
就会在根目录创建一个 hello.html 的文件,html 文件里面会引用<script type="text/javascript" src="https://assets.pyecharts.org/assets/echarts.min.js"></script>
所以 pyecharts 是通过把 Python 代码转化为 html,然后调用官方提供的 Echarts 来绘图
常见问题及解决办法
图表无法展示问题
有些服务运行是需要服务器支持的,直接打开可能无法正常展示
解决方法:把生成的 render.html 文件放到服务器中运行
还有就是默认引用的资源为线上资源https://assets.pyecharts.org/assets/echarts.min.js
,没有联网的情况也是无法展示的
解决方法
如果没有安装服务器可使用官方提供的 pyecharts-assets
pyecharts-assets 提供了 pyecharts 的资源文件
可以通过 localhost-server 或者 notebook-server 启动本地服务。首先将项目下载到本地
Localhost-Server
启动服务器
设置 host
Notebook-Server
安装扩展插件
设置 host
上述方法能够解决本地执行或者 jupyternote 无法显示的问题
初体验
接下来我们体验各种图表的绘制
使用 options 配置项
在 pyecharts 中,一切皆选项。
V1 版本开始支持链式调用
你所看到的格式其实是
black
格式化以后的效果可以执行
pip install black
下载使用

使用 selenium 驱动程序将 pyecharts 输出渲染为图像
安装 snapshot_selenium
如果在运行程序报如下错误
是因为系统没找到浏览器的驱动导致的
下载 chromedriver.exe 驱动安装上即可
常用的网址:
选择与浏览器对应的版本
查看浏览器版本

进入下载页面就会看到相关版本文件

选择对应版本进入页面下载正确平台驱动

windows 平台 32 和 64 位是通用的
具体操作
解压下载好的文件,并将解压好的 chromedriver.exe 文件复制到 Python 的安装目录下面,
要注意的是:Python 的安装目录在设置系统环境变量时是添加过的。
比如我的 python 是使用 Anaconda 安装的,所以安装目录是:E:\Anaconda3
(如果将 chromedriver.exe 放在其他的目录下面,也必须将这个目录添加到系统环境变量值里)

注意:如果设置了系统环境变量需要重启计算机后才会生效!!
解决报错问题,继续体验生成图片
生成透明背景的高清图片,可以放到 PPT 展示

使用主题
有很多主题可供选择


折线图

其他图表
pyecharts 不但能画基本图形,更复杂炫酷的都可以实现,比如地图,关系图.....
总结
pyecharts 可谓是应有仅有,完全能够满足你的日常需求,也是我平时用来搭建可视化大屏常用的工具.页面美观,使用简单,支持海量数据.pyecharts 还能够和各类 Web 框架整合,如:Flask,Django,Tornado.本文旨在抛转引玉和解决常见问题,更多炫酷用法待你发现,可参考官方文档(https://pyecharts.org/#/zh-cn/)
--不积跬步,无以至千里,每天进步一点点,是在默默地创造一个意想不到的奇迹,共勉~
版权声明: 本文为 InfoQ 作者【迷彩】的原创文章。
原文链接:【http://xie.infoq.cn/article/f402de3ac30a1533b36cb84d2】。文章转载请联系作者。
评论