python高端实现各国GDP动态轮换图


文章目录

  • python高端实现各国GDP动态轮换图
  • 前言效果
  • 一、准备数据等文件
  • 二、完整代码
    • 1.准备showGDP.py
    • 2.准备PlotUtil.py
  • 总结
  • 效果展示

前言效果

今天我们来试一下用python实现世界各国从1960-2018年的各国的GDP展示效果!也许大家会觉得有用!


一、准备数据等文件



二、完整代码

1.准备showGDP.py

代码如下:

#coding=utf-8
#
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import PlotUtil
import platform
import sysdef is_country(x, fields):if "v2" in sys.version:x = x.encode("utf-8")for field in fields:if field in x:return Falsereturn Truedef main():# 读取数据gdp = pd.read_excel("GDP_MAP.xls")# 筛选:去掉世界、一些地区性的数据fields = ["世界", "收入国家", "地区", "南亚", "组织成员", "人口","北美", "联盟", "IBRD", "IDA", "重债穷国"]gdp["is_country"] = gdp.apply(lambda x: is_country(x["Country Name"], fields), axis = 1)gdp = gdp[gdp["is_country"] == True]datas = []for year in range(1960, 2019):year = str(year)gdp.sort_values(year, inplace = True, ascending = False)print(year,"==========================================")print(gdp[0:15][["Country Name", year]])data = gdp[0:15]data.sort_values(year, inplace = True, ascending = True)data[year] = data[year] / 10 ** 11datas.append([year, data[year].tolist(), data["Country Name"].tolist()])plot = PlotUtil.Plot(datas)if "v2" in sys.version: # 如果你是用python2运行plot.showGif("gdp.gif", writer = "imagemagick")if "v3" in sys.version: # r如果你是用python3运行plot.showGif("gdp.html", writer = "html")if __name__ == '__main__':main()

2.准备PlotUtil.py

代码如下(示例):

#coding=utf-8
import matplotlib.pyplot as plt
from matplotlib import animation  # 动图的核心函数
import sysclass Plot(object):"""docstring for Plot"""def __init__(self, data):# 中文显示plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = Falsefig, ax = plt.subplots(figsize = (12,6))self.fig = figself.ax = axself.data = datadef showGif(self, save_path, writer = 'imagemagick'):plt.cla()ani = animation.FuncAnimation(fig = self.fig,func = self.update,frames = len(self.data),init_func = self.init,interval = 0.5,blit = False,repeat = False)# 不用imagemagick时,可以保存为htmlani.save(save_path, writer = writer, fps = 3) #def init(self):bar = self.ax.barh([], [], color = '#0CD9F1')return bardef update(self, i):self.ax.cla()data = self.data[i]x = data[1]y = data[2]year = data[0]bars = []for k in range(len(x)):tmp = y[k]if "v2" in sys.version:tmp = y[k].encode("utf-8")if tmp in ["中国"]:bar = self.ax.barh(k, x[k], color = 'r')else:bar = self.ax.barh(k, x[k], color = '#0CD9F1')bars.append(bar)#添加数据标签for rect in bars:rect = rect[0]w = rect.get_width()self.ax.text(w, rect.get_y() + rect.get_height() / 2, '%.1f' % float(w), ha = 'left',va = 'center')#设置Y轴刻度线标签self.ax.set_title(year)self.ax.set_yticks(range(len(y)))self.ax.set_yticklabels(y)if "v2" in sys.version:self.ax.set_xlabel("GDP(百亿)".decode("utf-8"))else:self.ax.set_xlabel("GDP(百亿)")return bar

写的时候,你可以根据自己的喜好,修改代码的效果,以及相应的HEX,都是根据个人哈,如果需要多元化,还可以继续把根据每个国家的不用,利用flag进行颜色变换,效果会更好!这里我就不赘述了!

最后运行,打开html文件,即可达到你要的效果!


总结

效果展示

这是最后的效果,也希望大家多多支持!谢谢大家!
特别注意的是,请大家在运行的时候,放在同一个路径下。

python高端实现各国GDP动态轮换图相关推荐

  1. linux+python高端运维班2017年1月课程及服务全新升级!

    老男孩IT教育是唯一一个和51CTO学院战略合作达到在线开班15期以上(近千名学员)以上的培训机构. 老男孩教育始终坚持以"不能让学员高薪就业的培训机构都是耍流氓"为标准开展教学任 ...

  2. 各国GDP动态图-Pyecharts实现

    各国GDP动态图-Pyecharts实现 强国史诗!1960-2021年各个国家GDP变化:一同见证中国崛起! 中国--可能是最具传奇色彩的国家.持久的鼎盛.百年屈辱史.或是近现代的复兴之路,无一不令 ...

  3. gdp python 变迁动图_用 Python 带你看各国 GDP 变迁

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 周萝卜源自:萝卜大杂烩 PS:如有需要Python学习资料的小伙伴可 ...

  4. gdp python 变迁动图_用 Python 带你看各国 GDP 变迁|python3教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联 ...

  5. 用 Python 带你看各国 GDP 变迁

    偶然之间,发现了一个网站,title 是世界银行,很高级的样子,可以下载很多有趣的数据,这对于我们练手数据分析及可视化真的是太好的资源了,不多说,戳下面的链接可以火箭直达哦! https://data ...

  6. 马哥2016全新Linux+Python高端运维班第八周作业

    一.请描述网桥.集线器.二层交换机.三层交换机.路由器的功能.使用场景与区别. 网桥(Bridge) 网桥是第2层的设备,它设计用来创建两个或多个LAN分段.其中,每一个分段都是一个独立的冲突域.网桥 ...

  7. python高端玩法_这7种Python的全新玩法,一般人都不知道!

    Python第三方模块众多,下面我介绍一些比较实用而又有趣的模块,主要分为爬虫.数据处理.可视化.机器学习.神经网络.股票财经.游戏这7个方面. 主要内容如下: 1.爬虫:相信大部分人都用Python ...

  8. python第七周答案_马哥2016全新Linux+Python高端运维班第七周作业

    1.创建一个10G分区,并格式为ext4文件系统: [root@localhost ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2). 更改将停留在内 ...

  9. 马哥2016全新Linux+Python高端运维班第七周作业

    1.创建一个10G分区,并格式为ext4文件系统: # fdisk device 子命令:管理功能 p: print, 显示已有分区: n: new, 创建 d: delete, 删除 w: writ ...

最新文章

  1. Android模拟自定义浏览器和打开另一个Ativity(06)
  2. WPF 窗口居中 变更触发机制
  3. Node.js 多版本安装方式
  4. Go语言 科学计算库 Gonum 学习1
  5. C# 读取CAD文件缩略图(DWG文件)
  6. 使用matplotlib画图时不能同时打开太多张图
  7. 服务器上次文件命令,服务器上次文件命令
  8. 02_反汇编_反编译
  9. js进阶 10-3 jquery中为什么用document.ready方法
  10. kX3552 驱动、安装、插件集合贴
  11. matlab 入射线反射线,ray 射线追踪的仿真小程序最多可以模拟三次反射, 出 图 matlab 272万源代码下载- www.pudn.com...
  12. 曲线平滑算法 matlab,matlab学习之降噪平滑算法
  13. 微信演示制作软件易企秀的上手体验(图文)
  14. 读书笔记,《反脆弱》,第三章,猫与洗衣机
  15. Eclipse的JVM语言Xtend达到2.3 M7
  16. __参加华为新员工培训有感
  17. Day836.ReadWriteLock -Java 并发编程实战
  18. 微电网优化调度|农村农业区可再生能源微电网优化调度(Python代码实现)
  19. 国密SM2前端加密,Java后台解密问题
  20. 连续数值变量的离散化、哑变量

热门文章

  1. 剑指Offer系列(java版,详细解析)38.字符串的排列
  2. VBA的参数传递:ByVal 和 ByRef 的区别
  3. 电子健康档案:实现医疗信息的有效共享
  4. 关于2-3-4树和红黑树的简单理解
  5. 数据结构与算法---均摊时间复杂度
  6. 汉罗塔小游戏(自创)
  7. 微机原理知识点总结9(8255A+8251A)
  8. JAVA后端面试经-三拳打死老师傅的那些套路问题,开卷你也不会
  9. 电子病历系统源码 winform 医院电子病历系统源码
  10. H5页面拉起第三方App