Python数据可视化神器pyecharts初体验

in #cn5 years ago

最近试用了一个开源的数据可视化Python软件包pyecharts。它将Python和echarts结合在一起,提供强大的数据可视化支持,感觉非常好用。向大家强烈推荐。

pyecharts

首先看下其官方的介绍:

  • 简洁的 API 设计,使用如丝滑般流畅,支持链式调用
  • 囊括了 30+ 种常见图表,应有尽有
  • 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab
  • 可轻松集成至 Flask,Sanic,Django 等主流 Web 框架
  • 高度灵活的配置项,可轻松搭配出精美的图表
  • 详细的文档和示例,帮助开发者更快的上手项目
  • 多达 400+ 地图文件,并且支持原生百度地图,为地理数据可视化提供强有力的支持

对我而言,比较吸引人的特点包括:简洁的API设计,支持各种常见图表,和Jupyter Notebook的集成,以及丰富的文档。

安装非常简单:

pip install pyecharts

生成渲染后的HTML页面

如下代码会生产一个简单的柱状图:

from pyecharts.charts import Bar
from pyecharts import options as opts
bar = (
    Bar()
    .add_xaxis(["Jan", "Feb", "Mar", "Apr", "May", "June"])
    .add_yaxis("Downloads", [114, 155, 97, 131, 185, 270])
    .set_global_opts(title_opts=opts.TitleOpts(title="Downloads"))
)
bar.render()

上面代码会在当前目录下生成一个文件:render.html,该文件会显示如下的柱状图:

image.png

在Jupyter_notebook中使用

和前面的代码一样,只不过在最后需要调用:

bar.render_notebook()

image.png

生成渲染后图片

首先安装snapshot_selenium:

pip install snapshot_selenium

还需要安装Chrome。切换到root用户运行:

curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add
echo "deb [arch=amd64]  http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
apt-get -y update
apt-get -y install google-chrome-stable

运行如下代码就可以在当前目录下生成一个PNG图片:

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot as driver

bar = (
    Bar()
    .add_xaxis(["Jan", "Feb", "Mar", "Apr", "May", "June"])
    .add_yaxis("Downloads", [114, 155, 97, 131, 185, 270])
    .set_global_opts(title_opts=opts.TitleOpts(title="Downloads"))
)
make_snapshot(driver, bar.render(), "bar.png")

pyecharts支持的图表超过30种,我仅仅尝试了两种,但感觉应该非常容易上手。下一步项目中如果需要的话,应该能够拿起来就用了。