• Pyecharts绘制动态地图


    1、Timeline 组件原理介绍

    • 在整个动态图的绘制过程,主要用到了 Pyecharts 的 Timeline 高级组件,该组件与 Matplotlib 中 animatation 函数原理相同
      • ​把数据以时间作为唯一变量,在不同时间点下其它数据条目是不一样的,一个时间点可以绘制一张可视化图表,把全部的可视化图表一帧一帧连接起来,通过帧与帧之间的数据差值变化,最终形成动态图效果

    2、Timeline 组件使用

    2.1、创建 Timeline 对象类创建 Timeline 对象类

    先创建一个 Timeline 对象,相当于一个容器,把后面绘制的每一帧可视化报表图放在里面,然后根据放入先后顺序合成一个类似动态图的视频

    # 导入所需要的库函数
    from pyecharts import options as opts
    from pyecharts.charts import Bar,Timeline
    from pyecharts.faker import Faker
    import random
    
    t1  = Timeline()# 创建 Timeline对象
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.2、循环绘制每一帧图表,放入 Timeline

    利用 for 或 while 循环语句,遵守 Pyecharts 语句创建每一帧时间对应的可视化图表,然后加入了前面创建的 Timeline() 组件中,这里图表以直方图 Bar 为例

    for i in range(1969,2020):
        attr1 = random.shuffle(list(attr))
        bar = (
        Bar()
        .add_xaxis(random.sample(attr, len(attr)))
        .add_yaxis('Data',Faker.values(),label_opts = opts.LabelOpts(position = 'right'),
                 )
        .set_series_opts(label_opts = opts.LabelOpts(is_show = True,position = 'right'))
        .reversal_axis()
        .set_global_opts(title_opts = opts.TitleOpts("{}".format(i),
                                                     pos_left = '50%',
    
                                                    ),
                        legend_opts = opts.LegendOpts(pos_right = '10%'))
    
        )
    
        t1.add(bar,'{}年'.format(i))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    代码解读,这里以1969-2020 作为时间段,对每一个时间节点也就是某一年创建对应的 Bar 图表,最后以​​t1.add(instance,str)​​​ 函数把对应时间点创建的图表加入 ​​Timeline​​​ 组件中,为了后面更好的展示动态效果,这里把对 Bar 的坐标轴做了逆置操作( ​​reversal_axis()​​ ),每一帧的效果预览如下:
    在这里插入图片描述

    2.3、美渲染化图表, html 文件

    另外,在 Timeline() 中 提供了函数​​add_schema()​​​ 用于美化组件样式,例如 ​​时间轴方向、符号、颜色、每一帧停留时间、播放键位置、是否现实 timeline 组件、组件位置​​ 等属性,函数使用介绍如下

    def add_schema(
        # 坐标轴类型。可选:
        # 'value': 数值轴,适用于连续数据。
        # 'category': 类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。
        # 'time': 时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,
        # 例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    vivado中的常用AXI接口IP核
    java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码
    python处理图像文件
    Rust学习日记(二)变量的使用--结合--温度换算/斐波那契数列--实例
    【JAVA程序设计】(C00089)基于SSM(非maven)的仓库出入库管理系统
    掌动智能性能压力测试优势有哪些
    Unity技术手册-UGUI零基础详细教程-Toggle切换
    Pytorch D2L Subplots方法对画图、图片处理
    Elasticsearch
    【云原生 | Kubernetes 系列】---Skywalking 告警
  • 原文地址:https://blog.csdn.net/m0_54634272/article/details/127865719