python制作数据增长动图_手把手教你做一个python+matplotlib的炫酷的数据可视化动图...
#第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的炫酷的数据可视化动图...相关推荐
- 字符动图_手把手教你做一个python+matplotlib的炫酷的数据可视化动图
1.数据可视化动图,是数据可视化的高级显示,最近很流行. 2.比如下面将告诉你如何制作一个如下的数据可视化动图. 3.例: 3.1 准备一组数据,虚拟的csv资料,对应关系如下 4个项目:namegr ...
- python k线合成_手把手教你写一个Python版的K线合成函数
手把手教你写一个Python版的K线合成函数 在编写.使用策略时,经常会使用一些不常用的K线周期数据.然而交易所.数据源又没有提供这些周期的数据.只能通过使用已有周期的数据进行合成.合成算法已经有一个 ...
- bootstraptable 怎么在特定行添加数据_手把手教你做一个“渣”数据师,用Python代替老情人Excel...
大数据文摘出品 来源:medium 编译:张大笔茹 十年前,你说你是做数据的,大家的反应就是 -- 用 Excel 做做表. 现在,要成为一个合格的数据分析师,你说你不会 Python,大概率会被江湖 ...
- python执行js脚本安全吗_手把手教你如何使用Python执行js代码
前言 各位小伙伴,大家好,这次咱们来说一下关于爬虫方向的一个知识,Python如何执行js,快来看看吧!!! 为什么要引出Python执行js这个问题? 都说术业有专攻,每个语言也都有自己的长处和短处 ...
- java学生考勤系统视频_手把手教你做一个Java 学生信息、选课、签到考勤、成绩管理系统附带完整源码及视频开发教程...
四个阶段的学生信息系统视频教程终于录制完成了,这里把这四个阶段的系统打个包,如果想一次性全部获取那就点击文章下方的获取按钮,也可以根据下面给出的每个阶段的地址去分别获取,这里简单介绍下四个阶段. 第一 ...
- java学生签到系统视频教程_手把手教你做一个Java web学生信息、选课、签到考勤、成绩管理系统附带完整源码及视频开发教程...
四个阶段的Java web学生信息系统视频教程终于录制完成了,系统用到的知识点有:jsp+servlet+mysql+jquery+ajax,前端采用的是当下最流行的easyui管理框架,全部采用面向 ...
- 软件_手把手教vscode配置c++,python开发环境
原创:软件_手把手教vscode配置c++,python开发环境 之前主用Python作为项目开发语言,将项目迁移到arm边缘盒子上后发现arm的cpu不给力,软件速度低于预期,所以计划将部分程序改为 ...
- python手机版做小游戏代码大全-Python大牛手把手教你做一个小游戏,萌新福利!...
原标题:Python大牛手把手教你做一个小游戏,萌新福利! 引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规 ...
- Blender图解教程:手把手教你做一个马里奥金币 之 图片转法线贴图法(附模型下载)
<Blender图解教程:手把手教你做一个马里奥金币 之 比较传统的方法>介绍了一种用Blender制作法线贴图的流程,本文介绍一种更加省事的方法. 步骤 效果图 概要 步骤 1. 建模 ...
最新文章
- 可重构人工智能设备展现出智能化前景
- 以计算机为主题的英语作文范例,myfamily英语作文范文示例
- 8个问题全面了解5G关键技术Massive MIMO
- php 判断接受邮件地址,PHP:电子邮件验证并接受来自特定域的电子邮件地址
- C++泛型编程实现哈希表(闭散列---线性探测)
- esp32 micropython spiffs_spiffs 文件系统在esp32中的应用
- python设置list_python之list
- Win32 设备管理(2)
- 高斯金字塔 matlab,图像拼接中 高斯金字塔的建立 matlab程序详细解释 现金奖励...
- Oracle中删除重复记录
- 狗汪汪玩转嵌入式——I2C 协议分析
- 怎么才能转到计算机专业申请书,大学转专业的申请书范文
- java struts validate_重写ActionForm中的Validate()方法
- java 中文繁体转换简体
- 2021-06-05按键精灵实现远程获取消息内容
- MySQL安装教程 + 安装包
- C51实现时钟12MHz,使用定时器T1的方式1定时20mS ,做一个时分秒的电子钟。
- 数据资产盘点的流程和方法
- Java密码学原型算法实现——第二部分:单钥加密算法
- 你应该知道的50个项目管理术语(下)
热门文章
- 使用微信小程序editor富文本编辑器(爬坑要点)
- 【LVGL应用开发--基于STM32】第1章 初识LVGL
- PHP 可以利用的危险的函数
- 应聘计算机简历中的爱好怎么写,关于求职个人简历中的爱好特长应该怎么写
- linux终端安装playonlinux,Ubuntu安装PlayOnLinux的步骤
- Logback日志配置和简单使用
- 线性表中的头插法双链表的学习
- 如何区分“衬线体字”和“无衬线体字”?Linux Mint中如何安装字体?
- hibernate对oracle的文本字段按拼音排序
- mac修改localhost为指定ip_使用 macOS 服务器更改服务器的 IP 地址