day 30 动态GDP柱状图绘制

列表.sort(key=选择排序依据的函数,reverse=True|False)

参数key:要求传入一个函数,表示将列表的每一个元素传入函数当中,返回排序的依据,

参数reverse,是否反转排序结果,True降序,False升序

my_list = [["a", 33], ["b", 55], ["c", 11]]


# 排序基于带名函数
def choose_sort_key(element):
    return element[1]


# my_list.sort(key=choose_sort_key, reverse=True)

# 通过lambda匿名函数来排序
my_list.sort(key=lambda element: element[1],reverse=True)
print(my_list)
from pyecharts.charts import Bar, Timeline
from pyecharts.options import *

f = open("D:/1960-2019全球GDP数据.csv", "r", encoding="GB2312")
# 读取每一行
data = f.readlines()
f.close()
# 删除第一行无用数据
data.pop(0)

data_dict = dict()
for line in data:
    year = int(line.split(",")[0])  # 年份
    country = line.split(",")[1]  # 国家
    gpd = float(line.split(",")[2])  # gdp,科学计数法转换为float
    try:
        data_dict[year].append([country, gpd])
    except KeyError:
        data_dict[year] = []  # 给字典添加一个键值对键值为year的值的[]的空集
        data_dict[year].append([country, gpd])

timeline = Timeline()

# 排序年份
sorted_year_list = sorted(data_dict.keys())
for year in sorted_year_list:
    data_dict[year].sort(key=lambda element: element[1], reverse=True)
    # 取出本年度排名前8的国家
    year_data = data_dict[year][0:8]
    x_data = []
    y_data = []
    for country_gap in year_data:
        x_data.append(country_gap[0])  # 在x轴添加国家
        y_data.append(country_gap[1] / 100000000)  # 在y轴添加gdp数据

    bar = Bar()
    x_data.reverse()  # 反转图标,gdp高的在上面
    y_data.reverse()
    bar.add_xaxis(x_data)
    bar.add_yaxis("GDP亿", y_data, label_opts=LabelOpts(position="right"))
    bar.reversal_axis()
    bar.set_global_opts(title_opts=TitleOpts(title=f"{year}年全球数据"))
    timeline.add(bar, str(year))


timeline.add_schema(
    play_interval=1000,
    is_timeline_show=True,
    is_auto_play=True,
    is_loop_play=True
)

timeline.render("动态GDP柱状图.html")

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言每日一练------(Day3)

本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。 今天练习题的关键字: 尼科彻斯定理 等差数列 💓博主csdn个人主页&#xff1a…

速腾RS16的ROS2驱动

文章目录 本机软硬件环境ROS2驱动下载ROS2编译设置固定IP编辑配置文件测试参考 本机软硬件环境 ROS2-foxyubuntu20.04速腾RS16 ROS2驱动下载 mkdir laser_ws && cd laser_ws/ mkdir src && cd src/ git clone https://github.com/RoboSense-LiDAR/rslidar_m…

【OpenCV实战】3.OpenCV颜色空间实战

OpenCV颜色空间实战 〇、Coding实战内容一、imread1.1 函数介绍1.2 Flags1.3 Code 二. 色彩空间2.1 获取单色空间2.2. HSV、YUV、RGB2.3. 不同颜色空间应用场景 〇、Coding实战内容 OpenCV imread()方法不同的flags差异性获取单色通道【R通道、G通道、B通道】HSV、YUV、RGB 一…

el-table表尾添加合计行,自动合计,且特殊列自定义计算展示

效果如图 1.element-ui的table表格有合计功能,但是功能却不完善,会有不显示和计算出现错误的问题,项目中有遇到,所以记录下 show-summary:自动合计 getSummaries():对合计行进行特…

2023阿里云学生服务器免费领取入口_学生认证流程

2023阿里云学生服务器价格可以免费申请,阿腾云分享阿里云学生服务器优惠活动入口,学生服务器完成学生认证领取流程,阿里云学生机配置为云服务器ECS、2核2G、1M带宽、40G系统盘,完成学生身份认证即可免费领取1台ECS,在云…

1.8.7 练习 冒泡排序 Bubble Sort(提取函数)

C自学精简教程 目录(必读) 1 前驱知识点 for循环语句 、 if语句、函数 、动态内存 2 排序 是将元素按照从小到大的顺序存放的方法。 一开始元素可能并不是按照从小到大的顺序存放的。 这时候我们需要找到需要调整的元素对,并交换这两个元素的值,不…

java遇到java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver该如何解决

普通的Java项目,利用servlet实现登录页面跳转出现下列问题。该如何解决??? 首先你要先加载驱动,idea通过项目结构添加的依赖包是无法正常加载驱动的。我们要在 WEB-INF目录下建立lib目录在lib目录下添加MySQL驱动。

代码随想录算法训练营第31天 | ● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

文章目录 前言一、理论基础二、455.分发饼干三、376. 摆动序列四、53. 最大子序和总结 前言 贪心。 一、理论基础 贪心没有套路,说白了就是常识性推导加上举反例。 贪心算法一般分为如下四步: 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问…

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

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

2017. 网格游戏;2397. 被列覆盖的最多行数;2202. K 次操作后最大化顶端元素

2017. 网格游戏 核心思想:前缀和枚举。读完题后可以发现,第一个机器人走的路线就像一条分割线,第二个机器人只能获得上面白色部分或者下面白色部分的最大值。这个最大值怎么求,我们可以通过前缀和来求,然后通过枚举转…

导入excel数据给前端Echarts实现中国地图-类似热力图可视化

导入excel数据给前端Echarts实现中国地图-类似热力图可视化 程序文件: XinqiDaily/frontUtils-showSomeDatabaseonMapAboutChina/finalproject xin麒/XinQiUtilsOrDemo - 码云 - 开源中国 (gitee.com) https://gitee.com/flowers-bloom-is-the-sea/XinQiUtilsOr…

IDEA 报 Cannot resolve symbol ‘HttpServletResponse‘ 解决

springboot2版本换成springboot3之后,代码这里突然报红了, 首先要淡定,把原先Import的引入删掉,重新引入试试呢,是不是很简单哈哈。 原来,springboot3的路径是: import jakarta.servlet.http…

1773_把vim的tab键设置为4个空格显示

全部学习汇总: GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used. 有时候自己觉得自己很奇怪,看着Linux的命令窗口就觉得很顺眼。那些花花绿绿的字符以及繁多的方便命令工具,确实是比Windows强不少。不过&a…

Python学习 -- 根类object

在Python编程中,所有的类都继承自一个根类,名为object。这个根类提供了许多基本的特性和方法,为其他类的创建和使用提供了基础。本文将深入探讨object类,介绍其重要特性和用法,并通过代码示例进行详细解释。 1. 什么是…

C++day3(类、this指针、类中的特殊成员函数)

一、Xmind整理&#xff1a; 二、上课笔记整理&#xff1a; 1.类的应用实例 #include <iostream> using namespace std;class Person { private:string name; public:int age;int high;void set_name(string n); //在类内声明函数void show(){cout << "na…

【Linux】序列化与反序列化

目录 前言 什么是应用层&#xff1f; 再谈"协议" 什么是序列化和反序列化 网络版计算器 整体流程实现 Sock.hpp的实现 TcpServer.hpp的实现 Protocol.hpp的实现 CalServer.cc的编写 CalClient.cc的编写 整体代码 前言 本章是属于TCP/UDP四层模型中的第一层…

使用 Python编程: 下载 YouTube 音频的桌面应用程序

最近我开发了一个使用 Python 编写的桌面应用程序&#xff0c;可以方便地下载 YouTube 音频。该应用程序使用了 wxPython、yt_dlp 和 tqdm 库&#xff0c;提供了一个简单直观的用户界面&#xff0c;并具备高效的下载功能。 C:\pythoncode\new\youtube-dl-audio.py 程序介绍 …

Java实现根据关键词搜索当当商品列表数据方法,当当API接口申请指南

要通过当当网的API获取商品列表数据&#xff0c;您可以使用当当开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例&#xff0c;展示如何通过当当开放平台API获取商品列表&#xff1a; 首先&#xff0c;确保您已注册成为当当开放平台的开发者&#xff0c;并创建…

Ansible学习笔记10

1、在group1的被管理机里的mariadb里创建一个abc库&#xff1b; 1&#xff09; 然后我们到agent主机上进行检查&#xff1a; 可以看到数据库已经创建成功。 再看几个其他命令&#xff1a; #a组主机重启mysql&#xff0c;并设置开机自启 ansible a -m service -a "namemy…

Hive-启动与操作(2)

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 个人主页&#xff1a;beixi 本文章收录于专栏&#xff08;点击传送&#xff09;&#xff1a;【大数据学习】 &#x1f493;&#x1f493;持续更新中&#xff0c;感谢各位前辈朋友们支持…