首页 > 编程语言 >用python绘制1960年到2019年全国GDP增长图

用python绘制1960年到2019年全国GDP增长图

时间:2023-02-18 16:00:45浏览次数:43  
标签:GDP bar python my 1960 dict year data

from pyecharts.charts import Bar,Timeline
from pyecharts.options import *

#处理数据
f = open("D:/1960-2019全球GDP数据.csv","r",encoding="GB2312")
#读取每一行,返回是一个列表
data_lines = f.readlines()
f.close()
#数据中第一行是year,国家,GDP的字样,第一行并非数据,所以要删掉
#可以访问列表中的第一行数据进行删除
my_dict = {}
data_lines.pop(0)
for data in data_lines:
year=data.split(",")[0]
country=data.split(",")[1]
GDP=float(data.split(",")[2])#因为所提供的的数据有科学计数的方式,因此可以通过float类型进行转换

try:
my_dict[year].append([country,GDP])
except KeyError:
my_dict[year]=[]
my_dict[year].append([country, GDP])

#对年份进行排序,由于字典中用for循环取出时都不按顺序,因此我们可以先取出关键字,排好序
keys=sorted(my_dict.keys())
timeline=Timeline()
for every_year in keys:
#对每年的GDP进行排序,只取前八名
my_dict[every_year].sort(key=lambda element:element[1],reverse=True)
forth_8=my_dict[every_year][0:8]
x_data=[]
y_data=[]
for data in forth_8:
x_data.append(data[0])
y_data.append(data[1]/100000000)
#绘图
bar = Bar()
x_data.reverse()
y_data.reverse()
bar.add_xaxis(x_data)
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"{every_year}的世界各国GDP图")
)
timeline.add(bar,str(every_year))
#设置自动播放
timeline.add_schema(
play_interval=1000,
is_timeline_show=True,
is_auto_play=True,
is_loop_play=True
)
timeline.render("1960-2019年世界GDP的排名.html")

一定要一步一步的来哦,我在调试的过程中也是出现很多错误,但是都一一克服了呀!

标签:GDP,bar,python,my,1960,dict,year,data
From: https://blog.51cto.com/u_15760583/6065454

相关文章

  • Windows下面查看python安装路径的快捷方法
    在Windows(Win10-Win11)下面,查看python的安装路径,比较快捷的方法是:打开CMD窗口,运行wherepython便可以查看python安装路径,不同机器不一样:C:\Users\WinUser01\AppData\Loca......
  • python获取子线程结果
    fromthreadingimportThreadclassMyThread(Thread):def__init__(self,func,args=()):Thread.__init__(self)self.func=funcs......
  • python Django基础
    django官网https://www.djangoproject.com/download/文档https://docs.djangoproject.com/安装Django安装官网LTS版本pipinstalldjango==3.2.15Django命令>django......
  • python面向对象
    1、面向对象和面向过程的区别1.1、面向过程:是一种以事件为中心的编程思想,更关注过程。简单的问题可以用面向过程的思路来解决,直接有效,但是当问题的规模变得更大时,用面向过程......
  • Python配置文件管理之ini和yaml文件读取
    1.引言当我们设计软件时,我们通常会花费大量精力来编写高质量的代码。但这往往还不够,一个好的软件还应该考虑其整个系统,如测试、部署、网络等。其中最重要的一个方面是配置......
  • python定时器
    一.TimerTimer为threading中的一个类,用来指定的秒数后调用函数,我们来看下Timer类的构造参数。interval:设置定时运行的时间function:设置定时的事件args:参数kwargs:字典......
  • 【编程基础之Python】5、安装Python第三方模块
    (【编程基础之Python】5、安装Python第三方模块)安装Python第三方模块为什么需要安装第三方模块Python具有很强的可扩展性,它不是把所有功能特性都集中到语言核心,而是提供......
  • 大文件读取的实现-PYTHON
    当前一个大文件大小,比当前的机器的内存大,先读取某个文件里的一部分。文件遍历因为文件保存了很多字符和行,因此也是循环常见的典型使用案例,最原始的方法可以调用文件对象的re......
  • python--石头剪刀布游戏(列表)
    一、学习目标利用列表实现石头剪刀布游戏二、实验环境Pycharm社区版、win11三、代码及运行结果先贴代码,有需要的直接拿,想要进一步一起学习的,接着往下看第四个标题呀,亲。起初......
  • python学习笔记七:DataFrame
    1.Series是ndarray的升级,而DataFrame是Series的升级,从一维拓展到多维DataFrame的属性:index,colums,values,shapeimportnumpyasnpimportpandasaspdfrompandasimport......