美文网首页Python GUI
国产可视化库Pyecharts首秀

国产可视化库Pyecharts首秀

作者: 皮皮大 | 来源:发表于2021-11-13 09:31 被阅读0次

    公众号:尤而小屋
    作者:Peter
    编辑:Peter

    大家好,我是Peter

    一直以来都在坚持更新plotly_express可视化库的内容,从基本的一行代码出各种图,到每个类型图的绘制,再到图形的绘制技巧,内容还是非常的丰富。

    plotly_express可以说是自己目前见过最棒的库,主要是体现在3点:

    • 代码简洁
    • 图形漂亮,颜色贼好看
    • 动态可视化

    不愧是可视化神器😊以后还会继续补充相关内容,特别是plotly_expressdash的结合。

    从今天开始也要写另一个可视化库:pyecharts。这是一个纯国产的可视化库,也非常的强大。所有的文章都会是基于官网的资料和示例,以及自己使用的实际案例。

    image

    声明

    在此郑重声明:接下来关于pyecharts的全部文章都是基于版本V1.7。写这个声明的原因,是因为pyecharts有两个版本:V0.5和V1.0。

    Peter刚开始学习Pyecharts的时候,网上看到的很多的资料都是老的,基于V0.5的,深受其害。在此告诉大家:一定要用V1.0+

    它们二者的语法之间是不兼容的,并不存在太多的联系。目前网上很多的教程和博客都是基于V0.5但是V0.5以后团队不会再维护了。

    自己曾经在使用这个库的时候,开始没有意识到这个版本的问题,找到的很多文章中的示例代码都不能直接使用,踩过很多的坑,后来才明白是版本的原因。

    ⚠️将来的所有文章都是基于V1.0

    ⚠️将来的所有文章都是基于V1.0

    ⚠️将来的所有文章都是基于V1.0

    什么是pyecharts

    在此,引用官网上的一段话来介绍什么是pyecharts:

    Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。

    而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

    说的直白些:pyecharts=python+echarts

    特性

    首先我们高度概括:🐂🍺

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

    安装

    下面是自己经常安装Python相关库的代码,速度非常快:

    pip install -i https://pypi.douban.com/simple pyecharts==1.7  # 安装pyecharts
    pip install -i https://pypi.douban.com/simple pandas  # 安装pandas
    
    image

    官方提供的源码安装方式

    $ git clone https://github.com/pyecharts/pyecharts.git
    $ cd pyecharts
    $ pip install -r requirements.txt
    $ python setup.py install
    # 或者执行 python install.py
    

    查看版本

    import pyecharts
    print(pyecharts.__version__)
    

    image

    快速入门

    1、默认生成render.html文件

    from pyecharts.charts import Bar  # V1版本的导入类方式!!!!非常关键,看到这种方式才是V1
    
    bar = Bar()
    bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    # render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
    bar.render()
    

    2、指定文件和路径

    from pyecharts.charts import Bar
    
    bar = Bar()
    bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    bar.add_yaxis("商家B", [15, 20, 36, 18, 45, 69])
    
    bar.render("firstpyecharts.html")  # 也可以传入路径参数
    

    3、在notebook中直接出图

    # 注意:如果在notebook中不出图,需要添加下面的两行代码
    # 只需要在顶部声明 CurrentConfig.ONLINE_HOST 即可
    from pyecharts.globals import CurrentConfig, OnlineHostType
    # OnlineHostType.NOTEBOOK_HOST 默认值为 http://localhost:8888/nbextensions/assets/
    CurrentConfig.ONLINE_HOST = OnlineHostType.NOTEBOOK_HOST
    # --------------------------
    
    from pyecharts.charts import Bar
    
    bar = Bar()
    bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    bar.add_yaxis("商家B", [15, 20, 36, 18, 45, 69])
    
    bar.render_notebook()
    

    链式调用

    在绘图的时候pyecharts支持链式调用:

    from pyecharts.charts import Bar
    from pyecharts import options as opts
    
    # V1 版本开始支持链式调用
    
    bar = (
        Bar()
        .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
        .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
        .set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
        # 或者直接使用字典参数
        # .set_global_opts(title_opts={"text": "主标题", "subtext": "副标题"})
    )
    bar.render_notebook()  # notebook中显示
    # 不习惯链式调用的开发者依旧可以单独调用方法
    bar = Bar()
    bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    bar.set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
    bar.render()
    
    image

    解决不出图

    如果notebook中没有出图,解决方法在这里:pyecharts v1.5.1+ 起开始支持 Notebook 插件作为静态资源服务。

    • 获取 pyecharts-assets 项目
    $ git clone https://github.com/pyecharts/pyecharts-assets.git
    
    • 安装扩展插件
    $ cd pyecharts-assets
    # 安装并激活插件
    $ jupyter nbextension install assets
    $ jupyter nbextension enable assets/main
    
    • 配置 pyecharts 全局 HOST
    # 只需要在顶部声明 CurrentConfig.ONLINE_HOST 即可
    from pyecharts.globals import CurrentConfig, OnlineHostType
    
    # OnlineHostType.NOTEBOOK_HOST 默认值为 http://localhost:8888/nbextensions/assets/
    CurrentConfig.ONLINE_HOST = OnlineHostType.NOTEBOOK_HOST
    

    主题

    示例

    内置主题类型可查看pyecharts.globals.ThemeType

    from pyecharts.charts import Bar
    from pyecharts import options as opts
    from pyecharts.globals import ThemeType
    
    bar = (
        Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))  # 初始化的时候指定主题
        .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
        .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
        .add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
        .set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
    )
    
    bar.render_notebook()
    
    image image

    支持的主题

    下面记录的是pyecharts支持的全部主题:

    thm = '''
     |  CHALK = 'chalk' #粉笔风
     |
     |  DARK = 'dark'  #暗黑风
     |
     |  ESSOS = 'essos' #厄索斯大陆
     |
     |  INFOGRAPHIC = 'infographic' #信息图
     |
     |  LIGHT = 'light' #明亮风格
     |
     |  MACARONS = 'macarons' #马卡龙
     |
     |  PURPLE_PASSION = 'purple-passion' #紫色激情
     |
     |  ROMA = 'roma' #石榴
     |
     |  ROMANTIC = 'romantic' #浪漫风
     |
     |  SHINE = 'shine' #闪耀风
     |
     |  VINTAGE = 'vintage' #复古风
     |
     |  WALDEN = 'walden' #瓦尔登湖
     |
     |  WESTEROS = 'westeros' #维斯特洛大陆
     |
     |  WHITE = 'white' #洁白风
     |
     |  WONDERLAND = 'wonderland' #仙境
    '''
    

    全局配置

    在绘制图形的时候,经常需要对图形进行各种个性化的配置,请务必记住下面的这张图:

    image

    多种图形

    下面介绍基于Pyecharts绘制的各种图形:

    1、柱状图

    image

    2、折线图

    image

    3、面积图

    image

    4、K线图

    image

    5、桑基图

    image

    6、省份地图

    image

    7、漏斗图

    image

    当然Pyehcharts能够绘制的图形和功能远不止这些,以后会慢慢介绍,请期待~

    相关文章

      网友评论

        本文标题:国产可视化库Pyecharts首秀

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