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

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

f283df70a182fbfc5e05d29240ab428e.png

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

d3a48f6d70b51a30b2c93aa9fba13918.gif

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

图2

d0e052d892ec6ede821e03a901fe1bcb.png

图3

d2928b8beb39e51c5118e027e0e14503.png

图4

b35d9d55f22aa476a0c7b682699feb78.png

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.完整代码,可搜索本人易三一世的其他博客

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

runtime 分类结构体_iOS 读懂runtime基础(一)

目录前言本文会详细描述Objective-C运行时的各对象数底层据结构、类和原类、消息传递与转发、动态方法等技术方案. 文中底层代码实现均来自Apple open source; 本文篇幅较长, 文中描述加之有个人的一点理解, 主要用作记录和学习之用, 文笔粗陋, 技术菜鸡, 如有错误或不妥之处, …

weblogic jms消息 删除_消息队列与消息中间件概述:消息中间件核心概念与技术选型...

什么是消息?“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。什么是队列?队列(Queue)队列是一种先进先出(FIFO)的数据结构。什么是消息队列&#xff…

mod游戏什么意思计算机,MOD运算

mod运算,即求余运算,是在整数运算中求一个整数 x 除以另一个整数y的余数的运算,且不考虑运算的商。在计算机程序设计中都有MOD运算,其格式为: mod(nExp1,nExp2),即是两个数值表达式作除法运算后的余数。中文…

伽马分布极大似然估计_一文通俗解释极大似然估计

我们都知道机器学习的大致流程是通过建立一个合理的模型学习现有数据集,然后通过该模型去完成特定的任务。其中每个模型都包含自身的一组特定参数,而这组参数决定着模型的本身。但这里存在一个很关键的一个问题,就是我们如何去找到一组参数使…

html json解析插件,jQuery插件jsonview展示json数据

本文实例为大家分享了jQuery插件jsonview展示json数据的具体代码,供大家参考,具体内容如下项目中要展示json数据,自己写一套html来展示太麻烦,可以使用jquery的插件jsonview来解决这个问题。首先,去jquery官网下载最新…

python3.5安装pygame_python怎么安装pygame

Pygame 是一种流行的 Python 包,用于编写游戏-鼓励学生学习编程,同时创建有趣的东西。 Pygame 在新窗口中显示图形,因此它将 无法在 WSL 的命令行方法下运行。 但是,如果您通过本教程中所述的 Microsoft Store 安装了 Python&…

所属的用户_关于chmod(变更用户对此文件的相关权限)超详细说明,小白秒懂

Linux下一切都是文件,通过ls -l或者别名ll可以查看文件的详细信息:drwxr-xr-x 第一个字符d指的是目录文件;第2-4个字符rwx:指的是u(user,owner)对这个文件具有可读可写可执行的权限;第5-7字符r-x:指的是g(group)对这个文件具有可读可执行权限&#xff1b…

台式计算机计量单位,计算机的计量单位以及常见的数据类型

为什么会写这篇文章,面试官问数据类型占字节大小干什么。实际开发中,你肯定计算预估过一些数据具体要占多少磁盘,或者是内存。如果你没有不去在意这些东西,很多服务器资源,都会被无形的浪费掉。我们知道计算机的世界其…

cad线性标注命令_CAD常用标注快捷键和命令

点击上方 “CAD自学网 ” → 点击右上角“...” → 点选“设为星标 ★ ”为CAD自学网加上星标,即可及时收到干货啦!左下角阅读原文看CAD视频站长推荐:1、CAD2014快速精通进阶提高教程:点击查看 2、室内设计全屋定制全套视频教程&…

计算机怎么设置网络共享,局域网共享设置,教您电脑怎么设置局域网共享

前两天,遇到位朋友说他刚买了台新的电脑,加上原来家里原有的两台电脑了,就三台了,现在想要三台电脑都能够进行一个共享职员的这么设置,就是不知道如何在局域网里怎么设置共享,下面,小编就来跟大…

python中的类装饰器应用场景_Python 自定义装饰器使用写法及示例代码

1、Python装饰器简介 python的装饰器就是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。简单的说装饰器就是一个用来返回函数的函数。 它经常用于有切面需求的场景,比如&…

html引用外部导入式css文件夹,css文件内引用外部资源文件的相对路径

1.default.css文件内容(位于css文件夹下):.ClassName .ClassName .ClassName.page-sidebar .sidebar-search .submit {--该图片相对于css文件所在的位置。不是使用本css文件的html文件位置。background-image: url(../image/search-icon.png);}2.使用本css文件的htm…

京东五星电器送扫地机器人_家电也流行“套餐”,京东五星电器吹响国庆家装“集结号”...

“70吋超薄激光电视、大容量多门法式冰箱、烘干一体滚筒洗衣机、蒸烤一体机、扫地机器人……”一系列的新房采购清单让宿迁的谭小姐直呼头痛,“挑选品牌和型号,比较价格,还要想着跟装修风格是否搭配,好浪费时间。”在线下实体店迎…

c++设置单元格填充色_格式函数text,设置自定义格式的万金油

在日常的数据处理统计中,我们知道,数据格式标准统一,是很重要的前提,如果数据混乱,那么,在后期的数据处理分析,excel就会耍脾气出错的。所以设置好数据格式,是相当重要的。今天&…

生成html_听说你不会用Python将字符串生成PDF?来,我教你!

这是恋习Python推荐的第118篇好文来源:Python爬虫与算法作者:jclian笔者在今天的工作中,遇到了一个需求,那就是如何将Python字符串生成PDF。比如,需要把Python字符串‘这是测试文件’生成为PDF, 该PDF中含有文字‘这是…

大学计算机基础python第二次作业_python第二次作业-titanic数据集练习

一、读入titanic.xlsx文件,按照教材示例步骤,完成数据清洗。 titanic数据集包含11个特征,分别是: Survived:0代表死亡,1代表存活 Pclass:乘客所持票类,有三种值(1,2,3) Name:乘客姓名 Sex:乘客性别 Age:乘客…

大一计算机上机试题2017,2017历年全国计算机二级ACCESS上机试题及答案

可通过实际操作,锻炼Access的学习能力,动手能力,编程思想锻炼等,也可以作为access 数据库国际二级考试使用呢历年Access操作试题解析(2017.5.8整理,可能为2015年以前的)第一套一、基本操作题(计30分)(1)新建数据库"学生.mdb",将考生文件夹中的…

怎么做手机的上下滑动_手机视频恢复怎么做?删除时间较久的找回方法

手机视频恢复?话说到手机视频误删的情况对于一些用户来说是常态,手机视频多又杂,经常全选删除,不小心多选了没有发现就给一起删除了!事隔多个月以后突然要用到,却怎么也找不到了,最近删除相册也…

大唐发电厂计算机考试题,全国计算机等级考试上机考试与题库解析:一级B

全国计算机等级考试上机考试与题库解析:一级B语音编辑锁定讨论上传视频《全国计算机等级考试上机考试与题库解析一级B》是2011年北京邮电大学出版社出版的图书。本书在研究历年上机真题(库)的基础上,将常考题型提炼出来,对其进行了细致深入的…

opencv利用矩形框选中某一区域_【从零学习OpenCV】4Ubuntu系统中安装OpenCV 4

经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通,提前在公众号上连载部分内容,请持续关注小白。Ubuntu系统中安装OpenCV 4前面我…