Timeline: 时间线轮播多图

对全国2014-2023年各省市的人口,做出动态柱状图/时间线轮播多图,即每隔一定时间间隔,自动的切换2014、2015、....2023各省市的人口(即2014-2023年全国省市人口排名前12的情况)

1、模板

# -*- coding: gbk -*-
from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline
from pyecharts.faker import Fakerx = Faker.choose()  # ['可乐','雪碧','橙汁','绿茶','奶茶','百威','青岛']
tl = Timeline()  # 创建Timeline对象
for i in range(2015, 2020):  # 循环5次,创建了5个Bar柱状图bar = (Bar().add_xaxis(x)  # 添加X轴数据['可乐','雪碧','橙汁','绿茶','奶茶','百威','青岛'].add_yaxis("商家A", Faker.values()) # 添加Y轴数据 [值1,值2...].add_yaxis("商家B", Faker.values()) # 添加Y轴数据 [值1,值2...].set_global_opts(title_opts=opts.TitleOpts("某商店{}年营业额".format(i))))tl.add(bar, "{}年".format(i))
tl.render("timeline_bar.html")

 2、具体实现

# -*- coding: gbk -*-
from pyecharts import options as opts
from pyecharts.charts import Bar, Timeline
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType"""准备数据"""
# 确定需要创建多少个Bar对象,根据文件提供的年份 2014-2023
with open("分省年度数据 .csv","r",encoding="gbk") as f:data_lines=f.readlines()# 删除 data_lines列表的前3个元素(行)
for _ in range(3):data_lines.pop(0)# 删除 data_lines列表的后2个元素(行)
for _ in range(2):data_lines.pop(-1)years=data_lines.pop(0).replace("\n","").split(",")
# 去掉第一个元素“地区”
years.pop(0)# 遍历data_lines,生成我们需要的数据
# 把数据放到一个字典对象中 data_dict={年份:[[省市名,人口数],[省市名,人口数]...],
# 年份:[[省市名,人口数],[省市名,人口数]...]}
# 具体案例 {2003:[["北京市",1456],["天津市",1011]...],
# 2004:[["北京市",1493],["天津市",1024]...],...}# 创建字典对象
data_dict={}for data_line in data_lines:data_line_list=data_line.replace("\n","").split(",")# 遍历years给各个城市的各个省份的人口数据添加到data_dictindex=0for year in years:index+=1try:data_dict[year].append([data_line_list[0],float(data_line_list[index])])except Exception as e:# 如果出现了异常,说明是第一次添加数据data_dict[year]=[]data_dict[year].append([data_line_list[0],float(data_line_list[index])])"""创建Timeline对象"""
timeline=Timeline({"theme":ThemeType.ESSOS})
years.reverse()"""创建Bar对象,并加入到Timeline对象,还要进行配置"""
for year in years:# 下面我们需要取出每一年按照人口数量排序的前12个省市# 1、先排序 2、切片data_dict[year].sort(key=lambda ele:ele[1],reverse=True)rank_12_city_data=data_dict[year][0:12]# 定义Bar的X轴数据x_data=[]# 定义Bar的Y轴数据y_data=[]for city in rank_12_city_data:x_data.append(city[0])y_data.append(city[1])# 创建Bar对象bar=Bar()# 对x_data数据和y_data数据翻转x_data.reverse()y_data.reverse()bar.add_xaxis(x_data)bar.add_yaxis("人口(万)",y_data)# 转换X轴和Y轴bar.reversal_axis()# 全局配置bar.set_global_opts(title_opts=opts.TitleOpts(title=f"{year}年全国省市人口排名前12的情况"))# 将创建好的bar添加到Timeline对象timeline.add(bar,str(year))# 对时间线进行配置
timeline.add_schema(play_interval=500,is_auto_play=True
)"""生成对应的文件"""
timeline.render("2014-2023年全国省市人口排名前12的情况.html")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1555313.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

智慧农业案例 (二)- 智能化灌溉系统

橙蜂智能公司致力于提供先进的人工智能和物联网解决方案,帮助企业优化运营并实现技术潜能。公司主要服务包括AI数字人、AI翻译、领域知识库、大模型服务等。其核心价值观为创新、客户至上、质量、合作和可持续发展。 橙蜂智农的智慧农业产品涵盖了多方面的功能&…

使用Buildpacks构建Docker镜像

## 使用Buildpacks构建Docker镜像 ![](../assets/运维手册-Buildpacks-Buildpacks.io.png) ### Buildpacks简介 与Dockerfile相比,Buildpacks为构建应用程序提供了更高层次的抽象。具体来说,Buildpacks: * 提供一个平衡的控制,…

Elasticsearch学习笔记(五)Elastic stack安全配置二

一、手动配置http层SSL 通过前面的配置,我们为集群传输层手动配置了TLS,集群内部节点之间的通信使用手动配置的证书进行加密,但是集群与外部客户端的http层目前还是使用的自动配置,集群中HTTP的通信目前仍然使用自动生成的证书ht…

【EXCEL数据处理】000017 案例 Match和Index函数。

前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】000016 案例 Match和Index函数。使用的软件&#xff…

2024/10/5 数据结构打卡

对两个长度为n的升序序列A和B的元素按由小到大的顺序依次访问,这里访问的 含义只是比较序列中两个元素的大小,并不实现两个序列的合并,因此空间复杂度为 O(1)。按照 上述规则访问到第n个元素时,这个元素即为两个序列A和B的中位数。…

C语言自定义类型联合和枚举(25)

文章目录 前言一、联合体联合体的声明联合体的特点联合体和结构体内存布局对比联合体的大小计算联合体的实际使用样例礼品兑换单判断当前机器是大端还是小端 二、枚举枚举的定义枚举类型的声明枚举类型的优点枚举类型的使用 总结 前言 关于自定义类型除了我们常用的结构体&…

DBMS-3.1 SQL(1)——SQL概述和DDL

本文章的素材与知识来自李国良老师和王珊老师。 SQL概述 1.定义 2.SQL语句分类 数据定义语言DDL(Data Definition Language) 一.表 1.创建表 (1)语法 中括号内的项为可选项。分号标志着一条SQL语句的结束。SQL语句不区分大小…

前端编程艺术(4)---JavaScript进阶(vue前置知识)

目录 1.变量和常量 2.模版字符串 3.对象 4.解构赋值 1.数组的解构 2.对象的解构 5.箭头函数 6.数组和对象的方法 7.扩展运算符 8.Web存储 9.Promise 10.AsyncAwait 11.模块化 1.变量和常量 JavaScript 中的变量和常量是用于存储数据的标识符。变量可以被重新赋值&am…

PAIRDISTILL: 用于密集检索的成对相关性蒸馏方法

在当今海量数据时代,有效的信息检索(IR)技术对于从庞大数据集中提取相关信息至关重要。近年来,密集检索技术展现出了相比传统稀疏检索方法更加显著的效果。 现有的方法主要从点式重排序器中蒸馏知识,这些重排序器为文档分配绝对相关性分数,因此在进行比较时面临不一致性的挑战…

CSP-J Day 5 模拟赛补题报告

姓名:王胤皓,校区:和谐校区,考试时间: 2024 2024 2024 年 10 10 10 月 5 5 5 日 9 : 00 : 00 9:00:00 9:00:00~ 12 : 30 : 00 12:30:00 12:30:00,学号: S 07738 S07738 S07738 请关注作者的…

计算机系统基础概述

什么是计算机? 计算机是一种利用电子技术进行信息处理的设备,它能够接收、存储、处理和提供数据。计算机通过执行一系列预定义的指令来处理数据,这些指令通常被称为程序。计算机的核心功能包括算术运算、逻辑判断、数据存储和信息检索 计算…

IDEA基础开发配置以及和git的联动

1.1方向一:工具介绍 我今天要介绍的就是学习Java大部分情况下都会选择的一款工具-----IDEA,这个和我们熟悉的这个pycharm一样,都是属于这个Jetbrains公司的,虽然我对于这个并不是很了解,但是确实知道一点,…

七、泛型数组集合类

泛型&数组&集合类 泛型定义官方高阶扩展函数协变与逆变*泛型界限*类型擦除* 数组数组的创建数组的使用可变长参数原生类型数组嵌套数组 集合类List集合Set集合Map集合迭代器集合与数组扩展操作序列 泛型 定义 为了统计学生成绩,要求设计一个Score对象&…

25游卡(服务器)面试经验 游卡最常见面试问题总结

目录 【面试经历】 问题+详细答案 面试流程 面试攻略 【面试经历】 秋招目前面了十多家,第一家不开摄像头且表示麦不好要求找个耳机的。贴面经(纯八股) 1.HTTP与HTTPS 2.MTU如何设置,过大过小的后果 3.DNS过程 4.如何创建进程/线程,孤儿进程 5.java从文件到运行的过程…

LinuxO(1)调度算法

概念 在Linux中,O(1)调度算法是一种进程调度算法。O(1)表示算法的时间复杂度是常数级别的,与系统中的进程数量无关。 运行队列结构 他采用了两个运行队列,一个活动队列和一个过期队列。活动队列中的进程是有资格获取CPU时间片的进程&#x…

进程概念 | 进程状态 | 进程优先级

进程的基本概念 课本概念:程序的一个执行实例,正在执行的程序等。核心观点:担当分配系统资源(cpu时间、内存)的实体。 资源占用 它占用系统资源向CPU时间,内存等不同进程的资源是相互隔离的,确…

X3U·可编程控制器的定位控制

FX3U可编程控制器的定位控制进行说明。 一、概要 FX3U可编程控制器可以向伺服电机、步进电机等输出脉冲信号,从而进行定位控制。 脉冲频率高的时候,电机转得快:脉冲数多的时候,电机转得多。用脉冲频率、脉冲数来设定定位对象…

【牛顿迭代法求极小值】

牛顿迭代法求极小值 仅供参考 作业内容与要求 作业内容 作业要求 递交报告 代码 编程实现 计算偏导数 故上述非线性方程组的根可能为 f ( x , y ) f(x, y) f(x,y)的极值点,至于是极小值点还是极大值点或鞍点,就需要使用微积分中的黑塞矩阵来判断了。…

25重庆长安深蓝控制器开发面试经验 深蓝最常见面试问题总结

【面试经历】 秋招气氛组选手的第一场面试,9.17网申,9.24电话约面,9.26线上面试。问得很细,全长约1个小时 1. 自我介绍、项目介绍 2.项目细节,遇到了哪些困难;有没有PCB设计经验DC-DC芯片选型,电源噪声的原因、怎么消除、 3.画BUCK和BOOST拓扑图,讲原理 4.了解MCU的主…

C(十三)for、while、do - while循环的抉择 --- 打怪闯关情景

前言: 继C(十)for循环 --- 黑神话情景之后👉 https://blog.csdn.net/2401_87025655/article/details/142684637 今天,杰哥想用一个打怪闯关的场景让与大家一起初步认识一下for、while、do - while循环的抉择。&#xf…