pyecharts案例四——动态GDP柱状图绘制

news/2025/3/19 6:58:48/

思路

for循环每一年的数据,基于每一年的数据,创建每一年的Bar对象,并且将该对象添加到时间线timeline中,最后设置自动播放并绘图

实现代码

from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType# 注意编码格式必须是GB2312,否则中文乱码
f = open("./1960-2019全球GDP数据.csv", "r", encoding="GB2312")
data_lines = f.readlines()f.close()# 第一行是无用数据
data_lines.pop(0)# 将数据转换为字典存储,即如下格式:
# {年份:[[国家, gdp], [国家, gdp], [国家, gdp]...] ,年份:[[国家, gdp], [国家, gdp], [国家, gdp]...] ,...}
data_dict = {}
for line in data_lines:line.strip()year = int(line.split(",")[0])country = line.split(",")[1]gdp = float(line.split(",")[2]) # 必须转为float,因为float可把科学计数法识别出来# 用异常判断字典里是否有指定的keytry:data_dict[year].append([country, gdp])except KeyError:data_dict[year] = [] # 构建新的字典元素data_dict[year].append([country, gdp]) # 每一年是一个字典对timeline = Timeline({"theme": ThemeType.LIGHT})# 排序年份
sorted_year_list = sorted(data_dict.keys())
for year in sorted_year_list:# 每一年按gdp降序排列获得前8个gdp最大的国家数据data_dict[year].sort(key=lambda element:element[1], reverse=True)year_data = data_dict[year][0:8] # 前8个listprint(year_data)x_data = []y_data = []for country_gdp in year_data:x_data.append(country_gdp[0])y_data.append(country_gdp[1] / 100000000) # y轴用gdp# 构建柱状图# 每一年的数据算时间线上的一个节点bar = Bar()# 让gdp最高的数据在最上面x_data.reverse()y_data.reverse()bar.add_xaxis(x_data)# 柱状图y轴数据显示在柱的右侧bar.add_yaxis("GDP(亿)", y_data, label_opts=LabelOpts(position="right"))# 反转x轴和y轴bar.reversal_axis()#bar.set_global_opts(title_opts=TitleOpts(title=f"{year}年全球前8GDP数据"))timeline.add(bar, str(year))timeline.add_schema(play_interval=1000, # 播放间隔时间 msis_timeline_show=True,is_auto_play=True,is_loop_play=False
)# 绘图
timeline.render("1960-2019全球gdp前8的国家.html")

结果图

在这里插入图片描述


http://www.ppmy.cn/news/341427.html

相关文章

算法模板(6):贪心

区间问题 1.区间选点 给定N个闭区间,请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量 将每个区间按照右端点从小到大排序。从前往后依次枚举每个区间。如果当前区间中已经包含点,则直接pass。否则…

中兴机架服务器5300g3,产品技术-H3C UniServer R5300 G3服务器-新华三集团-H3C

前所未有的性能 H3C UniServer R5300 G3支持8块双宽GPU或20块单宽GPU,提供更强的计算能力。 H3C UniServer R5300 G3针对CPU/GPU异构计算特点,采用PCIe4.0通信链路设计,可以实现GPU之间高速低延迟的数据通信,为用户带来卓越性能体…

众辰变频器nz200t参数_【变频器 上海众辰变频器NZ100-1R5G-2】价格_厂家_图片 -Hc360慧聪网...

众辰变频器(汇菱变频器)主要技术参数:1、额定电压、频率:三相380V 50/60HZ;单相220V 50/60HZ 2、输入电压允许范围:380V:330-440;单相220V:170-240 3、输出电压:0-380V;0…

Hi3798M V200 SDK文档介绍

目录 下载SDK并解压解压后主要的文件夹 下载SDK并解压 步骤1:下载Hi3798M V200 SDK。 大家如果有下载路径可以直接下载,如果没有的话可以使用我这个路径。 链接:https://pan.baidu.com/s/1buqwwZ7yBPNmi6JA2KG1eQ 提取码:dv6f ps…

h3c服务器r4900清空配置信息,H3C R4900 G3服务器HDM初始化配置

H3C R4900 G3出厂设置HDM专用口默认IP:192.168.1.2,默认用户名:admin,默认密码:Password@_ 服务器安装以后需要根据实际情况修改HDM IP。 如果一台一台的修改会比较繁琐,现场交付时大多使用Windows笔记本电脑,使用批处理制作了快速配置脚本。将笔记本电脑的网口和HDM 专…

海思Hi3520DV400,Hi3520DRQCV400产品简介

Hi3520DV400 是针对多路高清(1080p/720p)和多路标清(D1/960H)DVR产品应用 开发的一款专业SOC芯片。Hi3520DV400内置ARM A7双核处理器和高性能的 H.265/ H.264视频编解码引擎,集成了包含多项复杂图像处理算法的高性能视…

hw3

1 a. ∂ y i ∂ x j ∂ ( σ ( W i 1 x 1 . . . W i d x d ) ) ∂ x j ∂ ( 1 1 e − ( W i 1 x 1 . . . W i d x d ) ) ∂ x j e − ( W i 1 x 1 . . . W i d x d ) W i j ( 1 e − ( W i 1 x 1 . . . W i d x d ) ) 2 \frac{\partial y_i}{\partial x_j}\newli…

诡异的启动信息:a disk read error occurred

现象 联想台式机,原系统是安装在机械硬盘上,但由于性能原因,需要替换到固态硬盘上 固态硬盘三星的750EVO,电脑联想的H3000(bios升级到2016/10) 使用diskgenius对分区进行复制操作后,无法对固态硬盘进行引导 引导错误:a disk read error occurred 但是使用大白菜PE进行硬盘…