python matplotlib animation制作世界人口变动动画

主要利用animation 做了个世界人口动画,数据从网上下载的。做成json格式的。读入pandas。没有放数据, 只是弄了4个国家的。图片的很多细节也没有设置。
代码如下:

# -*- coding: UTF-8 -*-
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.animation import FuncAnimationplt.style.use("ggplot")
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = Falsedf = pd.read_json('{"year":{"59":1959,"58":1960,"57":1961,"56":1962,"55":1963,"54":1964,"53":1965,"52":1966,"51":1967,"50":1968,"49":1969,"48":1970,"47":1971,"46":1972,"45":1973,"44":1974,"43":1975,"42":1976,"41":1977,"40":1978,"39":1979,"38":1980,"37":1981,"36":1982,"35":1983,"34":1984,"33":1985,"32":1986,"31":1987,"30":1988,"29":1989,"28":1990,"27":1991,"26":1992,"25":1993,"24":1994,"23":1995,"22":1996,"21":1997,"20":1998,"19":1999,"18":2000,"17":2001,"16":2002,"15":2003,"14":2004,"13":2005,"12":2006,"11":2007,"10":2008,"9":2009,"8":2010,"7":2011,"6":2012,"5":2013,"4":2014,"3":2015,"2":2016,"1":2017,"0":2018},
"india":{"59":4.41,"58":4.51,"57":4.6,"56":4.69,"55":4.79,"54":4.89,"53":4.99,"52":5.1,"51":5.2,"50":5.32,"49":5.43,"48":5.55,"47":5.68,"46":5.81,"45":5.95,"44":6.09,"43":6.23,"42":6.38,"41":6.52,"40":6.67,"39":6.83,"38":6.99,"37":7.15,"36":7.32,"35":7.49,"34":7.67,"33":7.84,"32":8.02,"31":8.2,"30":8.37,"29":8.55,"28":8.73,"27":8.91,"26":9.09,"25":9.27,"24":9.46,"23":9.64,"22":9.82,"21":10.01,"20":10.19,"19":10.38,"18":10.57,"17":10.75,"16":10.93,"15":11.12,"14":11.3,"13":11.48,"12":11.65,"11":11.83,"10":12.01,"9":12.18,"8":12.34,"7":12.5,"6":12.66,"5":12.81,"4":12.96,"3":13.1,"2":13.25,"1":13.39,"0":13.53},
"china":{"59":6.55,"58":6.67,"57":6.6,"56":6.66,"55":6.82,"54":6.98,"53":7.15,"52":7.35,"51":7.55,"50":7.75,"49":7.96,"48":8.18,"47":8.41,"46":8.62,"45":8.82,"44":9.0,"43":9.16,"42":9.31,"41":9.43,"40":9.56,"39":9.69,"38":9.81,"37":9.94,"36":10.09,"35":10.23,"34":10.37,"33":10.51,"32":10.67,"31":10.84,"30":11.02,"29":11.19,"28":11.35,"27":11.51,"26":11.65,"25":11.78,"24":11.92,"23":12.05,"22":12.18,"21":12.3,"20":12.42,"19":12.53,"18":12.63,"17":12.72,"16":12.8,"15":12.88,"14":12.96,"13":13.04,"12":13.11,"11":13.18,"10":13.25,"9":13.31,"8":13.38,"7":13.44,"6":13.51,"5":13.57,"4":13.64,"3":13.71,"2":13.79,"1":13.86,"0":13.93},
"japan":{"59":0.92,"58":0.93,"57":0.95,"56":0.96,"55":0.97,"54":0.98,"53":0.99,"52":1.0,"51":1.01,"50":1.01,"49":1.03,"48":1.04,"47":1.06,"46":1.07,"45":1.08,"44":1.1,"43":1.12,"42":1.13,"41":1.14,"40":1.15,"39":1.16,"38":1.17,"37":1.18,"36":1.18,"35":1.19,"34":1.2,"33":1.21,"32":1.21,"31":1.22,"30":1.23,"29":1.23,"28":1.24,"27":1.24,"26":1.24,"25":1.25,"24":1.25,"23":1.25,"22":1.26,"21":1.26,"20":1.26,"19":1.27,"18":1.27,"17":1.27,"16":1.27,"15":1.28,"14":1.28,"13":1.28,"12":1.28,"11":1.28,"10":1.28,"9":1.28,"8":1.28,"7":1.28,"6":1.28,"5":1.27,"4":1.27,"3":1.27,"2":1.27,"1":1.27,"0":1.27},
"usa":{"59":1.78,"58":1.81,"57":1.84,"56":1.87,"55":1.89,"54":1.92,"53":1.94,"52":1.97,"51":1.99,"50":2.01,"49":2.03,"48":2.05,"47":2.08,"46":2.1,"45":2.12,"44":2.14,"43":2.16,"42":2.18,"41":2.2,"40":2.23,"39":2.25,"38":2.27,"37":2.29,"36":2.32,"35":2.34,"34":2.36,"33":2.38,"32":2.4,"31":2.42,"30":2.44,"29":2.47,"28":2.5,"27":2.53,"26":2.57,"25":2.6,"24":2.63,"23":2.66,"22":2.69,"21":2.73,"20":2.76,"19":2.79,"18":2.82,"17":2.85,"16":2.88,"15":2.9,"14":2.93,"13":2.96,"12":2.98,"11":3.01,"10":3.04,"9":3.07,"8":3.09,"7":3.12,"6":3.14,"5":3.16,"4":3.18,"3":3.21,"2":3.23,"1":3.25,"0":3.27}}')population = df.iloc[:, 1:5]
country = population.keys()
country = list(country)year = 3977 - df.iloc[:,0]
year.sort_values(ascending=False)fig, ax = plt.subplots()
y_pos = np.arange(len(country))
titleList = year.sort_values(ascending=False)ax.set_xlim(0, 16)
ax.set_yticks(y_pos)
ax.set_yticklabels(country)
ax.invert_yaxis()
ax.set_xlabel('population')def animate(i):if i < 60:ax.clear()ax.set_yticks(y_pos)ax.set_yticklabels(country)ax.set_xlim(0, 16)title = ax.text(7, 3, str(titleList[i]), fontsize = 18)###关键是这一步pop = df.iloc[i, 1:5]rects = ax.barh(y_pos, pop, color = ['maroon', 'olive', 'teal', 'purple'])return rectsani = FuncAnimation(fig, animate)ani.save('population.gif',writer='pillow')

最后做成gif如图:


主要代码参考了stackoverflow里的。

https://stackoverflow.com/questions/56063390/how-do-i-update-the-title-and-data-of-a-matplotlib-bar-chart-animation/56065311?r=SearchResults#56065311

python matplotlib animation制作世界人口变动动画相关推荐

  1. Python + matplotlib.animation 模拟斜抛运动动画(含完整代码)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Abstract Introduction Matplotlib.animation Physics model and C ...

  2. Python入门:制作世界人口地图

    来源:<Python编程:从入门到实践> 目录 第 16 章 下载数据 16.1 CSV文件格式 16.1.1 分析CSV文件头 16.1.2 打印文件头及其位置 16.1.3 提取并读取 ...

  3. 用Animation制作简单的物体动画

    ** 用Animation制作简单的物体动画 ** 大家好,今天来记录一下制作简单物体动画的教程. 1.首先打开窗口(Window)-动画(Animation)-动画(Animation) 2.选中需 ...

  4. Python对JSON文件世界人口数据进行可视化

    制作世界人口地图,用json模块来处理,将人口数据进行可视化!!! 下载JSON格式的人口数据,下面附上完整的,在网站中https://datahub.io/下载的数据集的详细过程!!! 1.下载世界 ...

  5. 【收藏】如何优雅的在 Python matplotlib 中制作平滑线/趋势线

    有时候需要在绘制曲线的时候,绘制一条趋势线,如下图,这种如何实现呢,请看下文. 数据如下 趋势计算代码 有两个输入 第一个输入是一个待平滑的数值数组, 第二个输入是权重,越大越平滑 # weight ...

  6. Python 动图、动画制作 —— moviepy、matplotlib.animation

    进入命令行界面(windows ⇒ cmd),下载安装,pip install moviepy 0. figure 的成员函数 # 创建 figure fig, ax = plt.subplots() ...

  7. 如何用python制作动画_如何基于Python Matplotlib实现网格动画

    -1- 如果你对本文的代码感兴趣,可以去 Github (文末提供)里查看.第一次运行的时候会报一个错误(还没找到解决办法),不过只要再运行一次就正常了. 这篇文章虽然不是篇典型的数据科学类文章,不过 ...

  8. 编程python如何制作动画_用Python Matplotlib 制作动画

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Hanz - 1 - 如果你对本文的代码感兴趣,可以去 Github ...

  9. Python+Matplotlib制作动画

    转载自:https://www.cnblogs.com/endlesscoding/p/10308111.html 看到一篇觉得非常不错的Python+Matplotlib制作动画的方法

最新文章

  1. 两个月的打卡活动圆满结束,今天公布兑奖详情
  2. 程序员面试100题之七:最长公共子字符串
  3. 牛客网暑期ACM多校训练营(第一场)J Different Integers
  4. metric learning -- 马氏距离与欧氏距离
  5. 2016专接本c语言真题_云南特岗教师考试真题(中学信息技术)9套(无答案)
  6. SQL Server 锁升级阈值
  7. matplotlib 快速绘图
  8. python的pyaudio教程入门_『开发技巧』Python音频操作工具PyAudio上手教程
  9. 关于Redis在windows上运行及fork函数问题
  10. 配置管理工具应该具有的一般特性
  11. 【软考】专栏导读(软考全面介绍、资格报考建议)
  12. jclasslib插件
  13. Pandas读取数据
  14. Win8.1系统所有的路径都无法更改文件夹名称
  15. 在Vue中使用icon 字体图标
  16. python基于训练集预测_Python中训练集/测试集的分割和交叉验证
  17. 用QQbot实现图灵机器人
  18. 自动化测试概述/自动化工具
  19. 4种数据去量纲化方法—标准化、归一化、正则化
  20. sql 删除最早的一条记录

热门文章

  1. python制作猜拳游戏代码_python实现猜拳游戏项目
  2. mac 将本地代码上传到github_教你使用mac上传本地iOS代码到github
  3. 1.2 线性回归与梯度下降-机器学习笔记-斯坦福吴恩达教授
  4. Ardino基础教程 16_一位数码管
  5. STM32F103/302 SPI3 接口使用例程
  6. SOPC第一课 建立QSYS系统
  7. Android Log等级的介绍
  8. 【PC工具】微软OneNote使用笔记,onenote无法连接网络无法同步解决方法
  9. 【蚁群路径规划】基于MATLAB的蚁群算法的二维路径规划
  10. 使用Java connector消费ABAP系统的函数