zoukankan      html  css  js  c++  java
  • 【数据可视化-pyecharts】pyecharts快速入门

    pyecharts快速开始

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

    from pyecharts import Bar
    
    bar = Bar("我的第一个图表", "这里是副标题")
    bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90])
    # bar.print_echarts_options() # 该行只为了打印配置项,方便调试时使用
    bar.render()    # 生成本地 HTML 文件
    • add()
      主要方法,用于添加图表的数据和设置各种配置项
    • print_echarts_options()
      打印输出图表的所有配置项
    • render()
      默认将会在根目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r"e:my_first_chart.html"),文件用浏览器打开。

    Note: 可以按右边的下载按钮将图片下载到本地,如果想要提供更多实用工具按钮,请在 add() 中设置 is_more_utils 为 True

    使用主题

    自 0.5.2+ 起,pyecharts 支持更换主体色系。下面是跟换为 'dark' 的例子:

    from pyecharts import Bar
    
    bar = Bar("我的第一个图表", "这里是副标题")
    bar.use_theme('dark')
    bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90])
    bar.render()

    pyecharts 支持另外 5 个主体色系,请移步到主题色系获取更多配置信息

    使用主题插件

    echarts 自带 dark 主题,pyecharts 也就自带了 dark。 echarts-themes-pypkg 主题插件提供了如下主题

    安装主题插件

    pip install echarts-themes-pypkg

    使用主题

    更换单个图形主题

    bar.use_theme("vintage")

    更换运行环境内所有图表主题

    from pyecharts import configure
    
    # 将这行代码置于首部
    configure(global_theme='dark')
    
    bar = Bar()
    # 其他代码

    主题风格

    vintage

    vintage

    macarons

    macarons

    infographic

    infographic

    shine

    shine

    roma

    roma

    westeros

    westeros

    wonderland

    wonderland

    chalk

    chalk

    halloween

    halloween

    essos

    essos

    walden

    walden

    purple-passion

    purple-passion

    romantic

    romantic

    图形绘制过程

    图表类提供了若干了构建和渲染的方法,在使用的过程中,建议按照以下的顺序分别调用:

    数据解析与导入篇:

    参考:http://pyecharts.org/#/zh-cn/data_import?id=networkx-%E5%BA%93

    介绍了一些常用的数据处理模块和库。这些并不是 pyecharts 核心的部分。

    #add 数据直接支持 numpy.array 对象,例如:
    
    from pyecharts import Bar
    import numpy as np
    
    clothes = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
    v1 = np.array([5, 20, 36, 10, 75, 90])
    bar = Bar("衣服销量")
    bar.add("商家A", clothes, v1, is_stack=True)
    bar.render()
    numpy 数据类型
    #在 pyecharts.base.Base.add(name, x_axis, y_axis) 函数中,数据参数通常要求数据是两个长度相等的列表。
    
    from pyecharts import Line
    
    t_data = [(21, '2017-12-01'), (19, '2017-12-02'), (20, '2017-12-03')]
    hs, ds = zip(*t_data)
    line = Line('High Temperature')
    line.add('High', ds, hs)
    line.render()
    zip 函数
    数据格式化处理函数,能够将源数据转化为符合 pyecharts 的数据。
    具体转化格式如下:
    
    1、元组列表
    [(A1, B1), (A2, B2), (A3, B3), (A4, B4)] --> k_lst[ A[i1, i2...] ], v_lst[ B[i1, i2...] ]
    2、字典列表
    [{A1: B1}, {A2: B2}, {A3: B3}, {A4: B4}] --> k_lst[ A[i1, i2...] ], v_lst[ B[i1, i2...] ]
    3、字典
    {A1: B1, A2: B2, A3: B3, A4: B4} -- > k_lst[ A[i1, i2...] ], v_lst[ B[i1, i2...] ]
    
    o_data = [('A', '34'), ('B', '45'), ('C', '12')]
    x, y = Base.cast(o_data)
    print(x) # ['A', 'B', 'C']
    print(y) # ['34', '45', '12']
    Base.cast 函数

    项目地址: https://github.com/kinegratii/borax

    安装

    borax 要求 Python3.5 以上,可以使用以下命令安装这个库。

    $ pip install borax

    函数定义文档

    该模块使用 fetch 函数,签名如下:

    fetch(iterable, key, *keys, default=EMPTY, defaults=None, getter=None)

    各参数的意义如下:

    • iterable:数据列表
    • key / keys:键值、属性访问方式的索引
    • default:默认值,用于选择单个属性
    • defaults:默认值字典,用于选择多个属性
    • getter:自定义访问回调函数

    应当注意的是,在使用时, default 、 defaults 和 getter 参数必须使用关键字方式传递,详情参考 PEP 3102

    示例

    选取多个属性

    from borax.fetch import fetch
    
    objects = [
        {'id': 282, 'name': 'Alice', 'age': 30},
        {'id': 217, 'name': 'Bob', 'age': 56},
        {'id': 328, 'name': 'Charlie', 'age': 56},
    ]
    
    names, ages = fetch(objects, 'name', 'age')
    print(names)
    print(ages)
    
    #输出
    #['Alice', 'Bob', 'Charlie']
    #[30, 56, 56]
    borax.fetch 模块

    networkx 库

    项目地址: https://github.com/networkx/networkx

    对于复杂的关系图,可以使用 networkx 库构建节点和连线,并传递给 add 函数。如下面的例子。

    # coding=utf8
    
    from __future__ import unicode_literals
    
    import networkx as nx
    from networkx.readwrite import json_graph
    from pyecharts import Graph
    
    g = nx.Graph()
    categories = ['网关', '节点']
    g.add_node('FF12C904', name='Gateway 1', symbolSize=40, category=0)
    g.add_node('FF12CA02', name='Node 11', category=1)
    g.add_node('FF12C326', name='Node 12', category=1)
    g.add_node('FF45C023', name='Node 111', category=1)
    g.add_node('FF230933', name='Node 1111', category=1)
    
    g.add_edge('FF12C904', 'FF12CA02')
    g.add_edge('FF12C904', 'FF12C326')
    g.add_edge('FF12CA02', 'FF45C023')
    g.add_edge('FF45C023', 'FF230933')
    
    g_data = json_graph.node_link_data(g)
    eg = Graph('设备最新拓扑图')
    eg.add('Devices', nodes=g_data['nodes'], links=g_data['links'], categories=categories)
    # eg.show_config()
    eg.render()
    networkx 库

    Pandas&Numpy 简单示例

    如果使用的是 Numpy 或者 Pandas,可以参考这个示例

    pandas-numpy

    Note: 使用 Pandas&Numpy 时,整数类型请确保为 int,而不是 numpy.int32

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

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

    比如这样

    notebook-0

    还有这样

    notebook-1

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

    notebook-2

    更多 Jupyter notebook 的例子请参考 notebook-use-cases。可下载后运行看看。

    如需使用 Jupyter Notebook 来展示图表,只需要调用自身实例即可,同时兼容 Python2 和 Python3 的 Jupyter Notebook 环境。所有图表均可正常显示,与浏览器一致的交互体验,这下展示报告连 PPT 都省了!!

  • 相关阅读:
    关闭弹出窗体,刷新父页面
    Oracle 导出部分表结构,以及导入
    ORCLE报错解决(ora01747:无效的用户.表.列,表.列)
    PL/SQL Developer使用技巧
    自定义table
    Array查询数组中是否包含指定字符
    水晶报表去掉多余小数点
    HttpHandler HttpModule入门篇
    窗口类名无效 错误 解决方法
    2020.10.15
  • 原文地址:https://www.cnblogs.com/XJT2018/p/10286785.html
Copyright © 2011-2022 走看看