Pyecharts绘制动态地图

本文介绍了如何利用Pyecharts的Timeline组件绘制动态地图。首先讲解了Timeline组件的原理,然后通过创建Timeline对象、循环绘制图表并进行美化,展示了如何将数据以时间变化的形式动态呈现。文章提供了完整代码,并鼓励读者尝试绘制不同类型的动态图表。
摘要由CSDN通过智能技术生成

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对象

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))

代码解读,这里以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': 时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,
    # 例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值