生成动态柱状图【Python思路】

news2024/12/25 9:00:13
# 1.导包
import json
from pyecharts.charts import Bar,Timeline
from pyechasts.options import *
from pyecharts.globals import ThemeType

# 2.打开文件(此次数据格式.csv文件)
f = open("D:/data.csv","r",encoding="GB2312")
data_lines = f.readlines()
f.close()

# 用记事本打开后数据,如下所示:

在这里插入图片描述

# 3.删除无用数据
data_lines.pop(0)

# 4.将数据转换为字典,例如:{1960:[[中国,123],...]}
data_dict = {}		#定义空字典,存放数据
for i in data_lines:
	year = int(i.split(",")[0])		
	country = i.split(",")[1]
	GDP = float(i.split(",")[2])
	
	#在字典中,可能存在关键字不存在的报错情况
	try:
		data_dict[year].append([country,GDP])
	except KeyError:
		data_dict[year] = []
		data_dict[year].append([country,GDP])

# 5.定义排序函数,其目的是后续对GDP数值进行排序
def sort_gdp(element):
	return element[1]

# 6.创建时间轴对象
timeline = Timeline(
	{"theme":ThemeType.LIGHT}		#设置主题

)

# 7.排序年份及排序GDP
sort_year_list = sorted([data_dict.keys()])		#对字典中的键(关键字)进行排序,即排序年份。
for year in sort_year_list:
	data_dict[year].sort(key=sort_gdp,reverse=True)
	year_data = data_dict[year][0:8]		#利用切片操作,取到前八名

	#创建X,Y轴
	X_data = []
	Y_data = []
	for country_gdp in year_data:
		X_data.append(country_gdp[0])
		Y_data.append(country_gdp[1]/100000000)

# 8.创建柱状图对象
bar = Bar()
bar.add_xaxis(X_data)
bar.add_yaxis("GDP(亿)",Y_data,label_opts=LabelOpts(position=right))
bar.reversal_axis()		#X和Y轴进行反转
timeline.add(bar,str(year))

# 9.设置自动播放等参数
timeline.add_schema(
	play_interval=2000,
	is_timeline_show=True,
	is_auto_play=True,
	is_loop_play=False
)

效果图
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

项目开发尺寸像素问题

一般来说 项目开发开始会固定页面尺寸 一般都是1920x1080像素 那这样开发是最简单的我们直接用设计图的像素来开发就行 不用管有什么滚动条 一般浏览器都会有边框什么的 所以会出现滚动条 当我们全屏状态下其实才是我们想要页面结果 如果我们想没有滚动条开发 首先我们要知道…

上传图片不超过2M要怎么缩小?教你几招压缩图片

图片大小是我们在上传图片时经常遇到的问题,很多时候图片过大,导致无法正常上传到社交网络、邮箱或网站等其他地方,而解决这个问题的最直接方式就是将图片缩小。下面就给大家分享几个简单易行的方法,可以轻松将图片大小缩小到2M以…

C++设计模式_02_面向对象设计原则

文章目录 1. 面向对象设计,为什么?2. 重新认识面向对象3. 面向对象设计原则3.1 依赖倒置原则(DIP)3.2 开放封闭原则(OCP )3.3 单一职责原则( SRP )3.4 Liskov 替换原则 ( LSP )3.5 接口隔离原则 ( ISP )3.6 优先使用对象组合,而不是类继承3.7…

C++面向对象编程(2)

目录 一. 问题引入 二. 右值引用 1. lvalue/rvalue/prvalue/xvalue 1.1 表达式与对象的概念 1.2 左值与右值 2. moving semantics 2.1 显示绑定 2.2 Move constructors 2.3 Move assignment operator 2.4 实例分析 // TODO Quiz REF 本章简单介绍下move语义的“来…

数据通信——传输层TCP(可靠传输原理的停止等待协议)

引言 基于上次的基本特性中的可靠传输特性,我们对其进行详细的分析。 对了,在讲解TCP前,先对缓存进行一个简单的描述。我们都听说过缓存这个东西,我们发来的数据,会暂时写入到缓存中进行预处理,随后从缓存中…

OpenAI发布ChatGPT企业级版本

本周一(2023年8月28日)OpenAI 推出了 ChatGPT Enterprise,这是它在 4 月份推出的以业务为中心的订阅服务。该公司表示,根据新计划,不会使用任何业务数据或对话来训练其人工智能模型。 “我们的模型不会从你的使用情况中…

最适合家用的洗地机哪个牌子好?好用洗地机推荐

在如今的快节奏下,许多人没有太多的时间去完成家务清洁这一大问题,但是随着洗地机的出现,很多小伙伴们都发现了这个智能清洁家电在我们的生活中频繁出现,比如最近比较火爆的智能洗地机,结合了吸拖洗为一体的高效清洁与…

Bigemap 在水土生态环境行业中的应用

工具 Bigemap gis office地图软件 BIGEMAP GIS Office-全能版 Bigemap APP_卫星地图APP_高清卫星地图APP 使用场景: 1. 土地利用占地管理: 核对数据,查看企业的实际占地是否超出宗地,污染面积。不方便现场勘测的地方&#xf…

Python实操GetOpenFilename打开文件选择框获取工作表信息

import xlwings as xw xlapp xw.App(visibleTrue, add_bookFalse) a xlapp.api.GetOpenFilename(Excel Files (*.xl*),*.xl*, 0, 0, 0, True) print(a[0]) slist [] for i in a:wk xw.Book(i)for s in wk.sheets:s_dict {}s_dict[工作簿名字] wk.names_dict[工作表名字] …

K 次取反后最大化的数组和【贪心算法】

1005 . K 次取反后最大化的数组和 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后,返回数组 可能…

信看课堂笔记—LDO和DC-DC电路打PK

LDO(low dropout voltage regulator,低压差线性稳压器)和DC-DC(Direct current-Direct current converter,直流电压转直流电压转换器)电源是非常常见的电源电路,LDO 出来的比较早,像老戏骨一样,…

热烈祝贺天光长寿食品成功入选航天系统采购供应商库

经过航天系统采购平台的严审,单州天光长寿食品(单县)有限公司成功入选中国航天系统采购供应商库。航天系统采购平台是航天系统内企业采购专用平台,服务航天全球范围千亿采购需求,目前,已有华为、三一重工、…

邀您试用|一键生成企业数字人,深兰科技硅基大脑SaaS平台使用指南

深兰科技“硅基大脑SaaS平台”是在深兰科技硅基知识大模型的基础上进行领域知识和个性化人设等高维数据的定制化训练,并以其零代码、一键生成、低成本等特点,实现从形象到知识体系的全面自定义,满足企业在智能客服、数字员工和行业专家等多个…

学习乐趣无限:学乐多光屏P90助力儿童智能学习新纪元

在这个变革的浪潮中,学乐多光屏P90以其卓越的功能和深刻的教育理念,成为了智能儿童学习领域的引领者,为孩子们开启了全新的学习体验。 融合创新技术,引领学习变革 学乐多光屏P90凭借其独特的触摸和投影光学技术,为儿…

K8S访问控制------认证(authentication )、授权(authorization )、准入控制(admission control )体系

一、账号分类 在K8S体系中有两种账号类型:User accounts(用户账号),即针对human user的;Service accounts(服务账号),即针对pod的。这两种账号都可以访问 API server,都需要经历认证、授权、准入控制等步骤,相关逻辑图如下所示: 二、authentication (认证) 在…

1+X智慧安防系统实施与运维技能等级证产教融合基地建设方案

一、系统概述 1X智慧安防系统实施与运维技能等级证产教融合体系统融合了产业需求、教育培训和技能认证,通过课程培训、实训基地和实习实训等方式培养学员的技能水平,并通过技能认证来评估其能力,以满足智慧安防行业对人才的需求,并…

el-date-picker 等 点击无反应不回显问题解决

如上图&#xff0c;编辑回显正常&#xff0c;但是时间控件在拖动过程中时间不会跟随改变。 解决办法&#xff1a; <el-date-picker input"onInput()" ...><el-input input"onInput()" ...>js中onInput() {this.$forceUpdate();},

Approaching (Almost) Any Machine Learning Problem中译版

前言 Abhishek Thakur&#xff0c;很多kaggler对他都非常熟悉&#xff0c;2017年&#xff0c;他在 Linkedin 发表了一篇名为Approaching (Almost) Any Machine Learning Problem的文章&#xff0c;介绍他建立的一个自动的机器学习框架&#xff0c;几乎可以解决任何机器学习问题…

企业的固定资产管理怎么操作

一家拥有多台大型设备的工厂&#xff0c;这些设备需要定期进行保养和维护&#xff0c;以确保其正常运转。而企业内部员工由于专业知识和技能的不同&#xff0c;需要分工协作才能更好地完成各项工作任务。因此&#xff0c;在设备资产管理方面&#xff0c;如何实现高效、便捷、透…

Linux x86_64 C语言实现gdb断点机制

文章目录 前言一、trap指令简介二、调用ptrace三、创建breakpoints四、CONT 和 SINGLESTEP五、完整代码演示六、增加参数检测参考资料 前言 本文参考文章&#xff1a;Implementing breakpoints on x86 Linux 一、trap指令简介 将通过在断点地址向目标进程的内存中插入一条新…