数据可视化之pyecharts

发布时间:2019-03-19 20:59:29编辑:auto阅读(4117)

    pyecharts介绍

    pyechats是一个用于数据可视化的包。

    Echats是百度开源的一个数据可视化js库,主要用于数据可视化,pyecharts 是一个用于生成Echarts图标的类库,实际上就是Echarts和Python的对接。

    pyecharts支持python2与python3,如果使用的是python2.7,需要在代码顶部声明字符编码,否则会出现中文乱码问题。

    #coding=utf-8
    from __future__ import unicode_literals
    

     

     

    Pyecharts安装

    anaconda中没有自带pyecharts,需要单独进行安装。

     1 pip install pyecharts 

     

    各种图形的使用

    引用包

    from pyecharts import Bar

    引用包有报错:

    ERROR:lml.utils:failed to import pyecharts_snapshot
    Traceback (most recent call last):
      File "c:\users\sheng\appdata\local\programs\python\python36-32\lib\site-packages\lml\utils.py", line 43, in do_import
        plugin_module = __import__(plugin_module_name)
    ModuleNotFoundError: No module named 'pyecharts_snapshot'

    按照提示进行安装对应的包,以及wheel包

    pip install wheel
    pip install pyecharts_snapshot
    

     

    主题

    pyecharts除了默认的白色底色和dark,还支持安装扩展包

    pip install echarts-themes-pypkg
    

     echarts-themes-pypkg包提供了vintagemacaronsinfographicshine 和 roma 主题

     使用:

    bar.use_theme('vintage')
    

     

    将图片保存到本地

    保存图片有两种方式,一种是点击图片右侧工具栏的下载按钮,保存格式为png,另一种是安装相关的包,通过render()方法保存到本地。

    第一种没有什么好说的,这里说下第二种保存图片的方法。

    pyecharts-snapshot插件可以将图片保存为png,gif,pdf等格式。

    安装phantomjs:

    npm install -g phantomjs-prebuilt
    

     安装pyecharts-snapshost:

    pip install pyecharts-snapshot
    

     调用render方法保存图片

    bar.render(path="snapshot.png")
    

     注:

    安装phantomjs时需要本地有nodejs环境,才能使用npm命令。

    nodejs的安装参考:

    https://nodejs.org/en/download/

    基本使用方法

    基本上所有的图的使用方法都是这样的:

    1. chart_type=Type()  初始化具体的图表对象
    2. chart_type.add()     添加数据及配置项
    3. chart_type.render()  生成.html文件

    从v0.5.9开始,支持链式调用,如:

    from pyecharts import Bar
    CLOTHES = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    clothes_v1 = [5, 20, 36, 10, 75, 90]
    clothes_v2 = [10, 25, 8, 60, 20, 80]
    (bar=Bar("柱状图示例")
        .add("商家A",CLOTHES,clothes_v1,is_stack=True)
        .add("商家B",CLOTHES,clothes_v2,is_stack=True)
        .render())
    

     多次显示图表的推荐使用方法

    从v0.4.0开始,pyecharts重构了渲染的内部逻辑,改善效率。推荐使用以下方式显示多个图表:

    from pyecharts import Bar,Line
    from pyecharts.engine import create_default_environment
    
    bar=Bar("我的第一个图表","这里是一个副标题")
    bar.add("服装",["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],
           [5,20,36,10,75,90])
    line=Line("我的第一个图表","这里是一个副标题")
    line.add("服装",["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],
            [5,20,36,10,75,90])
    env=create_default_environment("html")
    env.render_chart_to_file(bar,path="./bar.html")
    env.render_chart_to_file(line,path="./line.html")
    

    注:

    create_default_environment(file_type)

    file_type:'html','svg','png','jpeg','gif','pdf'

    同样的,保存图片格式需要安装phantomjs包。

    这里创建了两个对象,Bar和Line,这种方式使用了同一个引擎对象,减少了重复操作,速度有所提高,而使用Bar.render(),Line.render()则需要调用两次。

     

    柱形图-Bar

    attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = [5, 20, 36, 10, 75, 90]
    v2 = [10, 25, 8, 60, 20, 80]
    from pyecharts import Bar
    bar=Bar("这是主标题","这是副标题")
    bar.add(
        "商家A",
        attr,
        v1,
        is_stack=True 
    )
    bar.add(
        "商家B",
        attr,
        v2,
        is_stack=True
    )
    bar.render("./MyFirstPyecharts.html") #指定生成html的路径,不指定会默认生成在当前路径下,命名为render.html  
    #多个bar同时指定is_stack为True,会实现叠加效果  
    

     

     Tip:

    1. add()方法中根据is_stack可以设定柱形图是否叠加显示
    2. is_more_utils=True 参数来设置最右侧工具栏,对生成的图进行更多的操作,如将柱形图更改为折线图等
    3. 标记的使用:mark_point=['average']标记点,平均值;mark_line=['min','max','average']标记线,最大值、最小值和平均值
    4. 横向柱形图:is_convert=True,标识交换X轴和Y轴

    折线图-Line

    from pyecharts import Line
    line=Line("折线示例图")
    line.add(
        name,attr,v1,
        is_symbol_show=True
    )
    

     

    饼图-Pie

    散点图-Scatter

    地图

    在使用pyecharts制作地图展现时,会出现地图中只显示南海的问题。官方解释是为了缩减项目本身的体机以及维持pyecharts项目轻量化运行,pyecharts从0.3.2开始将不再自带地图js文件。所以我们需要安装一些包来解决。

    pip install echarts-countries-pypkg      --2M
    pip install echarts-china-provinces-pypkg  --748KB
    pip install echarts-china-cities-pypkg    --4M
    pip install echarts-china-counties-pypkg   --4.4M
    pip install echarts-china-misc-pypkg     --152KB
    pip install echarts-united-kingdom-pypkg  --1.3M

     这里备注一下:

      我之前是安装的anaconda,在使用conda install安装这些包时有报环境错误,我干脆把anaconda卸载了,然后更换了pip源为豆瓣的,pip install 安装成功!

关键字