1.数据可视化动图,是数据可视化的高级显示,最近很流行。

2.比如下面将告诉你如何制作一个如下的数据可视化动图。

3.例:

3.1 准备一组数据,虚拟的csv资料,对应关系如下

4个项目:namegroupyearvalue

name:李明、张三、王二、许仙、汤博、陈皮、袁飞

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

year:1968~2019

value:自己对应随便估计

3.2 我是先现在excel上编辑,然后另存为4.csv(注意一定是另存为,否则在导入数据时会出现格式不对)

3.3 python3.8+matplotlib作图前准备

3.4 代码修改注意:中文字体的设置,数据的导入,和代码的局部修改。

3.5 效果图

图1

3.6 本例虚拟数据的完整代码

图2

图3

图4

4.完整代码

#第1步:导出模块,固定import pandas as pdimport matplotlib.pyplot as pltimport matplotlib.ticker as ticker import matplotlib.animation as animation#第2步:中文字体显示设置1,导出通用字体设置,可调整from matplotlib import font_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步:画图关键设置,可固定def draw_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的形式展现图片

5.完整代码,可搜索本人易三一世的其他博客

喜欢的可以点赞、加关注、评论和转发。

字符动图_手把手教你做一个python+matplotlib的炫酷的数据可视化动图相关推荐

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

    #第1步:导出模块,固定 importpandas as pdimportmatplotlib.pyplot as pltimportmatplotlib.ticker as tickerimport ...

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

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

  3. python高斯噪声怎么去除_手把手教你如何实现Python手势识别与控制(含代码及动图)...

    Python手势识别与控制 概述 本文中的手势识别与控制功能主要采用 OpenCV 库实现, OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库, 可以运行在Linux, Windows ...

  4. python手势识别控制幻灯片_手把手教你如何实现Python手势识别与控制(含代码及动图)...

    Python手势识别与控制 概述 本文中的手势识别与控制功能主要采用 OpenCV 库实现, OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库, 可以运行在Linux, Windows ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. [图解教程]Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端
  2. Androidの多线程之更新ui(AsyncTask)
  3. ubuntu 关闭显示,关闭显卡,命令与图形切换
  4. 算法笔记_029:约瑟夫斯问题(Java)
  5. 第12章 使用Samba或NFS实现文件共享
  6. 庆祝51CTO六周年:资源牛人有奖比拼,生日当天疯狂送豆!(已结束)
  7. 光华科技光刻胶_光刻胶领衔国产替代,20只相关优质个股曝光,快看看有没有你的...
  8. django-csrftoken跨站请求伪造
  9. mysql loadfile_在MySQL中如何使用LOAD_FILE()函数?(代码示例)
  10. python理论知识选择题_python基础知识练习题(二)
  11. Jmeter性能测试的标准流程
  12. 蓝桥杯 字母组串(递归)
  13. 如何用 NAS 搭建属于自己的云端书库 | 极客分享第 32 期
  14. 云原生爱好者周刊:KubeSphere 3.3.0 Alpha 版发布
  15. 清华计算机毕业论文,清华大学本科毕业论文
  16. android八方向手势,Android开发中顺时针逆时针滑动手势的识别算法
  17. 识别合格ToB产品经理
  18. python简单聊天工具开发
  19. 惯性导航(IMU)误差分析
  20. 牛客网 Cutting Bamboos 【主席树+二分】

热门文章

  1. Spring源码:AOP(1)
  2. php ziparchive自带吗,PHP自带的ZipArchive压缩文件并下载打包好的文件(重要)
  3. codeforces(牛客网dp专题,排序)
  4. 6.Excel项目排期表
  5. *PAT_B_1014_Java(20分)
  6. qt如何提前jpg文件里的缩略图_如何去捕获和编辑H5制作软件Hype中的海报图像
  7. 如何进行聚类可视化_如何使用matplotlib包进行数据可视化
  8. Ubuntu Wifipumpkin3 WiFi钓鱼工具,应该适用于绝大多数的Debian系的linux 发行版
  9. POJ 2054 Color a Tree解题报告
  10. DIY人脸跟踪电风扇送女朋友(2)