#第1步:导出模块,固定

importpandas as pdimportmatplotlib.pyplot as pltimportmatplotlib.ticker as tickerimportmatplotlib.animation as animation#第2步:中文字体显示设置1,导出通用字体设置,可调整

from matplotlib importfont_manager#中文字体显示设置2,引出字体模块和位置#注意此处字体size大小不设置就是默认,设置或不设置后会发现所有文字或汉字大小都固定在my_font,下面单独设size无效了

my_font = font_manager.FontProperties(fname="/usr/share/fonts/truetype/noto/simsun.ttf",size=14)#中文字体显示设置,第3步,增加u和fontproperties=my_font,加不加u或r均可以

#第3步:导入数据,可调整,文件名和目录可调整#将数据下载下来放在指定默认的目录和文件夹下

df = pd.read_csv(‘4.csv‘,

usecols=[‘name‘, ‘group‘, ‘year‘, ‘value‘])#定义全局变量

current_year = 2018

#第4步:定义dff和图片大小设置,可固定

dff=() #定义元组

fig, ax = plt.subplots(figsize=(15, 8))#第5步:定义7组数据的颜色,group可调整,但颜色值可调整或者不调整

colors =dict(zip(

[‘安徽‘, ‘浙江‘, ‘江西‘, ‘上海‘,‘深圳‘, ‘北京‘, ‘重庆‘],

[‘#adb0ff‘, ‘#ffb3ff‘, ‘#90d595‘, ‘#e48381‘,‘#aafbff‘, ‘#f7bb5f‘, ‘#eafb50‘]))#第6步:从数据中取值,可固定

group_lk = df.set_index(‘name‘)[‘group‘].to_dict()#第7步:画图关键设置,可固定

defdraw_barchart(year):

dff= df[df[‘year‘].eq(year)].sort_values(by=‘value‘, ascending=True).tail(10)

ax.clear()#每次清空、刷新

ax.barh(dff[‘name‘], dff[‘value‘], color=[colors[group_lk[x]] for x in dff[‘name‘]])

dx= dff[‘value‘].max() / 200

for i, (value, name) in enumerate(zip(dff[‘value‘], dff[‘name‘])):#在text里加fontproperties=my_font,注意有my_font的地方size存在的意义不大,目前bug

ax.text(value-dx, i, name, size=20,fontproperties=my_font,

weight=600, ha=‘right‘, va=‘bottom‘)

ax.text(value-dx, i-.25, group_lk[name], size=10, fontproperties=my_font,

color=‘#444444‘, ha=‘right‘, va=‘baseline‘)

ax.text(value+dx, i, f‘{value:,.0f}‘, size=14, ha=‘left‘, va=‘center‘)#显示文字,x=0,y=1.10,坐标,ha=水平对准=水平线平放

#ax.text()格式=(x,y,string,fontsize=15,verticalalignment="top",horizontalalignment="right")

#string=字符串=‘文字内容‘

#汉字内容可调整,其他不动

ax.text(0, 1.10, ‘1968 ~ 2018年我国各部分省和地区GDP变化‘,

transform=ax.transAxes, size=18, fontproperties=my_font,

weight=600, ha=‘left‘) #文字标题,第1层

ax.text(0, 1.04, ‘GDP (万亿)‘, transform=ax.transAxes, size=12,

fontproperties=my_font, color=‘#777777‘) #显示文字,第2层

ax.text(1, 0.4, year, transform=ax.transAxes, color=‘#777777‘, size=46,

ha=‘right‘, weight=800) #右边固定显示动图年份

#va=verticalalignment="top",垂直对准

#ha=horizontalalignment="right",alignment=对准,水平对准

ax.xaxis.set_ticks_position(‘top‘) #x轴在上面

ax.set_yticks([])#默认是显示y轴的名称,左边垂直的城市名字,设为[]就是不显示

ax.margins(0, 0.01) #不设置就是默认值,缩放比例(0,0.05)

ax.grid(which=‘major‘, axis=‘x‘, linestyle=‘--‘) #垂直线,布局和格式

ax.set_axisbelow(True) #默认是true的

#默认是True,False之后不显示黑色线框

plt.box(False)#以animator形式展现动画

animator = animation.FuncAnimation(fig, draw_barchart, frames=range(1968, 2019))

plt.show()#以plt的形式展现图片

python制作数据增长动图_手把手教你做一个python+matplotlib的炫酷的数据可视化动图...相关推荐

  1. 字符动图_手把手教你做一个python+matplotlib的炫酷的数据可视化动图

    1.数据可视化动图,是数据可视化的高级显示,最近很流行. 2.比如下面将告诉你如何制作一个如下的数据可视化动图. 3.例: 3.1 准备一组数据,虚拟的csv资料,对应关系如下 4个项目:namegr ...

  2. python k线合成_手把手教你写一个Python版的K线合成函数

    手把手教你写一个Python版的K线合成函数 在编写.使用策略时,经常会使用一些不常用的K线周期数据.然而交易所.数据源又没有提供这些周期的数据.只能通过使用已有周期的数据进行合成.合成算法已经有一个 ...

  3. bootstraptable 怎么在特定行添加数据_手把手教你做一个“渣”数据师,用Python代替老情人Excel...

    大数据文摘出品 来源:medium 编译:张大笔茹 十年前,你说你是做数据的,大家的反应就是 -- 用 Excel 做做表. 现在,要成为一个合格的数据分析师,你说你不会 Python,大概率会被江湖 ...

  4. python执行js脚本安全吗_手把手教你如何使用Python执行js代码

    前言 各位小伙伴,大家好,这次咱们来说一下关于爬虫方向的一个知识,Python如何执行js,快来看看吧!!! 为什么要引出Python执行js这个问题? 都说术业有专攻,每个语言也都有自己的长处和短处 ...

  5. java学生考勤系统视频_手把手教你做一个Java 学生信息、选课、签到考勤、成绩管理系统附带完整源码及视频开发教程...

    四个阶段的学生信息系统视频教程终于录制完成了,这里把这四个阶段的系统打个包,如果想一次性全部获取那就点击文章下方的获取按钮,也可以根据下面给出的每个阶段的地址去分别获取,这里简单介绍下四个阶段. 第一 ...

  6. java学生签到系统视频教程_手把手教你做一个Java web学生信息、选课、签到考勤、成绩管理系统附带完整源码及视频开发教程...

    四个阶段的Java web学生信息系统视频教程终于录制完成了,系统用到的知识点有:jsp+servlet+mysql+jquery+ajax,前端采用的是当下最流行的easyui管理框架,全部采用面向 ...

  7. 软件_手把手教vscode配置c++,python开发环境

    原创:软件_手把手教vscode配置c++,python开发环境 之前主用Python作为项目开发语言,将项目迁移到arm边缘盒子上后发现arm的cpu不给力,软件速度低于预期,所以计划将部分程序改为 ...

  8. python手机版做小游戏代码大全-Python大牛手把手教你做一个小游戏,萌新福利!...

    原标题:Python大牛手把手教你做一个小游戏,萌新福利! 引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规 ...

  9. Blender图解教程:手把手教你做一个马里奥金币 之 图片转法线贴图法(附模型下载)

    <Blender图解教程:手把手教你做一个马里奥金币 之 比较传统的方法>介绍了一种用Blender制作法线贴图的流程,本文介绍一种更加省事的方法. 步骤 效果图 概要 步骤 1. 建模 ...

最新文章

  1. 可重构人工智能设备展现出智能化前景
  2. 以计算机为主题的英语作文范例,myfamily英语作文范文示例
  3. 8个问题全面了解5G关键技术Massive MIMO
  4. php 判断接受邮件地址,PHP:电子邮件验证并接受来自特定域的电子邮件地址
  5. C++泛型编程实现哈希表(闭散列---线性探测)
  6. esp32 micropython spiffs_spiffs 文件系统在esp32中的应用
  7. python设置list_python之list
  8. Win32 设备管理(2)
  9. 高斯金字塔 matlab,图像拼接中 高斯金字塔的建立 matlab程序详细解释 现金奖励...
  10. Oracle中删除重复记录
  11. 狗汪汪玩转嵌入式——I2C 协议分析
  12. 怎么才能转到计算机专业申请书,大学转专业的申请书范文
  13. java struts validate_重写ActionForm中的Validate()方法
  14. java 中文繁体转换简体
  15. 2021-06-05按键精灵实现远程获取消息内容
  16. MySQL安装教程 + 安装包
  17. C51实现时钟12MHz,使用定时器T1的方式1定时20mS ,做一个时分秒的电子钟。
  18. 数据资产盘点的流程和方法
  19. Java密码学原型算法实现——第二部分:单钥加密算法
  20. 你应该知道的50个项目管理术语(下)

热门文章

  1. 使用微信小程序editor富文本编辑器(爬坑要点)
  2. 【LVGL应用开发--基于STM32】第1章 初识LVGL
  3. PHP 可以利用的危险的函数
  4. 应聘计算机简历中的爱好怎么写,关于求职个人简历中的爱好特长应该怎么写
  5. linux终端安装playonlinux,Ubuntu安装PlayOnLinux的步骤
  6. Logback日志配置和简单使用
  7. 线性表中的头插法双链表的学习
  8. 如何区分“衬线体字”和“无衬线体字”?Linux Mint中如何安装字体?
  9. hibernate对oracle的文本字段按拼音排序
  10. mac修改localhost为指定ip_使用 macOS 服务器更改服务器的 IP 地址