python可视化神器——pyecharts库

作者: 田旭1 | 来源:发表于2018-06-10 11:15 被阅读209次

    无意中从今日头条中看到的一篇文章,可以生成简单的图表。据说一些大数据开发们也是经常用类似的图表库,毕竟有现成的,改造下就行,谁会去自己造轮子呢。

    pyecharts是什么?

    pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。使用pyecharts可以生成独立的网页,也可以在flask、django中集成使用。

    安装很简单:pip install pyecharts

    如需使用 Jupyter Notebook 来展示图表,只需要调用自身实例即可,同时兼容 Python2 和 Python3 的 Jupyter Notebook 环境。所有图表均可正常显示,与浏览器一致的交互体验,简直不要太强大。

    参考自pyecharts官方文档:http://pyecharts.org

    首先开始来绘制你的第一个图表

    使用 Jupyter Notebook 来展示图表,只需要调用自身实例即可

    add() 主要方法,用于添加图表的数据和设置各种配置项

    render() 默认将会在根目录下生成一个 render.html 的文件,文件用浏览器打开。

    使用主题

    自 0.5.2+ 起,pyecharts 支持更换主体色系

    使用 pyecharts-snapshot 插件

    如果想直接将图片保存为 png, pdf, gif 格式的文件,可以使用 pyecharts-snapshot。使用该插件请确保你的系统上已经安装了 Nodejs 环境。

    安装 phantomjs $ npm install -g phantomjs-prebuilt

    安装 pyecharts-snapshot $ pip install pyecharts-snapshot

    调用 render 方法 bar.render(path='snapshot.png') 文件结尾可以为 svg/jpeg/png/pdf/gif。请注意,svg 文件需要你在初始化 bar 的时候设置 renderer='svg'。

    图形绘制过程

    基本上所有的图表类型都是这样绘制的:

    chart_name = Type() 初始化具体类型图表。

    add() 添加数据及配置项。

    render() 生成本地文件(html/svg/jpeg/png/pdf/gif)。

    add() 数据一般为两个列表(长度一致)。如果你的数据是字典或者是带元组的字典。可利用 cast() 方法转换。

    多次显示图表

    从 v0.4.0+ 开始,pyecharts 重构了渲染的内部逻辑,改善效率。推荐使用以下方式显示多个图表。如果使是 Numpy 或者 Pandas,可以参考这个示例

    当然你也可以采用更加酷炫的方式,使用 Jupyter Notebook 来展示图表,matplotlib 有的,pyecharts 也会有的

    Note: 从 v0.1.9.2 版本开始,废弃 render_notebook() 方法,现已采用更加 pythonic 的做法。直接调用本身实例就可以了。

    比如这样

    还有这样

    如果使用的是自定义类,直接调用自定义类示例即可

    图表配置

    图形初始化

    通用配置项

    xyAxis:平面直角坐标系中的 x、y 轴。(Line、Bar、Scatter、EffectScatter、Kline)

    dataZoom:dataZoom 组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。(Line、Bar、Scatter、EffectScatter、Kline、Boxplot)

    legend:图例组件。图例组件展现了不同系列的标记(symbol),颜色和名字。可以通过点击图例控制哪些系列不显示。

    label:图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等。

    lineStyle:带线图形的线的风格选项(Line、Polar、Radar、Graph、Parallel)

    grid3D:3D笛卡尔坐标系组配置项,适用于 3D 图形。(Bar3D, Line3D, Scatter3D)

    axis3D:3D 笛卡尔坐标系 X,Y,Z 轴配置项,适用于 3D 图形。(Bar3D, Line3D, Scatter3D)

    visualMap:是视觉映射组件,用于进行『视觉编码』,也就是将数据映射到视觉元素(视觉通道)

    markLine&markPoint:图形标记组件,用于标记指定的特殊数据,有标记线和标记点两种。(Bar、Line、Kline)

    tooltip:提示框组件,用于移动或点击鼠标时弹出数据内容

    toolbox:右侧实用工具箱

    图表详细

    Bar(柱状图/条形图)

    Bar3D(3D 柱状图)

    Boxplot(箱形图)

    EffectScatter(带有涟漪特效动画的散点图)

    Funnel(漏斗图)

    Gauge(仪表盘)

    Geo(地理坐标系)

    GeoLines(地理坐标系线图)

    Graph(关系图)

    HeatMap(热力图)

    Kline/Candlestick(K线图)

    Line(折线/面积图)

    Line3D(3D 折线图)

    Liquid(水球图)

    Map(地图)

    Parallel(平行坐标系)

    Pie(饼图)

    Polar(极坐标系)

    Radar(雷达图)

    Sankey(桑基图)

    Scatter(散点图)

    Scatter3D(3D 散点图)

    ThemeRiver(主题河流图)

    TreeMap(矩形树图)

    WordCloud(词云图)

    用户自定义

    Grid 类:并行显示多张图

    Overlap 类:结合不同类型图表叠加画在同张图上

    Page 类:同一网页按顺序展示多图

    Timeline 类:提供时间线轮播多张图

    统一风格

    注:pyecharts v0.3.2以后,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表,可自行安装对应的地图文件包。

    地图文件被分成了三个 Python 包,分别为:

    全球国家地图:

    echarts-countries-pypkg

    中国省级地图:

    echarts-china-provinces-pypkg

    中国市级地图:

    echarts-china-cities-pypkg

    直接使用python的pip安装

    但是这里大家一定要注意,安装完地图包以后一定要重启jupyter notebook,不然是无法显示地图的。

    显示如下:

    总得来说,这是一个非常强大的可视化库,既可以集成在flask、Django开发中,也可以在做数据分析的时候单独使用,实在是居家旅行的必备神器啊

    相关文章

      网友评论

      • Oo莫莫oO:必须使用pyecharts_snapshot么?
        第一段代码运行后,有错误提示
        ModuleNotFoundError: No module named 'pyecharts_snapshot'

      本文标题:python可视化神器——pyecharts库

      本文链接:https://www.haomeiwen.com/subject/ivsfeftx.html