专栏首页Python与算法之美用Python优雅地制作动态条形图

用Python优雅地制作动态条形图

公众号“算法美食屋”后台回复关键字:动态图,可添加作者微信获取完整代码和人口数据集。

先上图片:

再上视频:

最后上代码:

import numpy as np 
import pandas as pd 
import pandas_alive
from matplotlib import pyplot as plt
import imageio

plt.rcParams['animation.writer'] = 'html'
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']

def html_to_gif(html_file, gif_file, duration=0.1):
    path = html_file.replace(".html","_frames")
    images = [os.path.join(path,x) for x in sorted(os.listdir(path))]
    frames = [imageio.imread(x) for x in images]
    imageio.mimsave(gif_file, frames, 'gif', duration=duration)
    return gif_file


df = pd.read_csv('./data/pop_amount.csv')
df["year"] = [str(x) for x in df["year"]]
df['year'] = pd.to_datetime(df['year'])
df = df.set_index("year")
df.columns = [x if "自治区" not in x else x[0:2] for x in df.columns]

html_file = "population_bar_race.html"
gif_file = html_file.replace(".html",".gif")
mp4_file =  html_file.replace(".html",".mp4")

def current_total(values):
    total = values.sum()/10000
    s = '中国大陆总人口: {:.2f}亿'.format(total)
    return {'x': .90, 'y': .2, 's': s, 'ha': 'right', 'size': 11}

chart = df.plot_animated(filename = html_file,title="中国大陆各省市历年人口变迁",
        figsize = (6,4),dpi=144,period_summary_func=current_total,
        n_visible=31,bar_texttemplate = '{x:.0f}',filter_column_colors = True,period_fmt="%Y年")

html_to_gif(html_file,gif_file,duration = 0.1)

主要是使用了pandas_alive这个库的功能,可以非常方便地制作条形图竞赛。

收工。?

公众号“算法美食屋”后台回复关键字:动态图,可添加作者微信获取完整代码和人口数据集。

本文分享自微信公众号 - Python与算法之美(Python_Ai_Road),作者:梁云1991

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 超简单,百行Python代码制作动态条形图跳舞

    打码不易,不想被白嫖,有需要完整代码和GDP数据集的同学,可以对本文点赞,在看,和分享后在公众号“算法美食屋”后台回复关键字:动态图,添加作者微信获取。感谢支持...

    lyhue1991
  • Excel图表学习74:制作动态排序的条形图

    条形图不仅有助于说明一个或多个数据系列中值的大小,而且还可以很好地替代饼图,饼图比较了一组数据中一个系列的比例。

    fanjy
  • 用python制作疫情动态图

    之前发了一个国外疫情发展视频,有朋友问怎么制作的,今天就写一下制作过程,非常简单,如果你学会了,以后只要获取了数据就可以制作各种类似的动图。

    星星在线
  • 超实用,百行Python代码制作动态树地图

    树地图(tree map)是一种适用于显示大量分层结构的数据,它是饼状图的一种高维度替代者,可以用面积直观显示各个部分的占比。

    lyhue1991
  • 好看的数据可视化图片都是用什么做的? | 数答

    由于经常有读者在文章留言中问到“这些好看的数据可视化图片都是用什么做的呀?”之类的问题,今天Alfred就来推荐一些实用的数据可视化工具给大家,这些工具包含:

    Alfred数据室
  • 用Python制作短视频之动态散点图

    (ps: 付费用户可查看完整代码,并获取数据集下载链接。以前赞赏过本公众号文章的用户也可以直接添加作者微信:liangyunhue 免费获取完整代码和数据集。)

    lyhue1991
  • Python是什么 Python的用处

    Python 是一门有条理的和强大的面向对象的程序设计语言,类似于Perl, Ruby, Scheme, Java。现在流行的AI人工智能技术大部分都是用Pyt...

    砸漏
  • 代码调试神器:VS Code 开源新工具!

    项目地址:https://github.com/hediet/vscode-debug-visualizer

    良月柒
  • 代码调试神器:VS Code 开源新工具!

    项目地址:https://github.com/hediet/vscode-debug-visualizer

    GitHubDaily
  • python介绍

    python是一门优秀的综合语言,python的宗旨是简明,优雅,强大,在人工智能,云计算,金融分析,大数据开发,web开发,自动化运维,测试等方向应用广泛,已...

    py3study
  • 耗时两年,我终于出了一本电子书!

    2018 年国庆节前,我开通了微信公众号“Python猫”,写下了“喵星来客”系列的第一篇文章。

    Python猫
  • 实时可视化Debug:VS Code 开源新工具,一键解析代码结构

    项目地址:https://github.com/hediet/vscode-debug-visualizer

    昱良
  • Perl、PHP、Python、Java

    ◆ (RoR)与Ruby结合之后,便如一只猱身而上灵猫,立刻衬托出Java和.NET大象般的身影

    py3study
  • VS Code 强大的开源工具!实时可视化Debug,一键解析代码结构

    DeBug 太枯燥?让 VS Code 画个图,自动帮你理清数据结构与代码思路,这就是 Reddit 2K 多点赞的开源新工具。

    开发者技术前线
  • 【VS Code】实时可视化Debug:VS Code 开源新工具,一键解析代码结构

    项目地址:https://github.com/hediet/vscode-debug-visualizer

    代码医生工作室
  • GitHub 热点速览 Vol.25:距离优雅编程你差个它

    以下内容摘录自微博@HelloGitHub 的 GitHub Trending,选项标准:新发布 | 实用 | 有趣,根据项目 release 时间分类,发布时...

    HelloGitHub
  • Python-one

    能够执行的操作,+   -   *  /   %(取余)  //(整除)   **(次方)

    快乐的技术人
  • Android绘图最终篇之大战贝塞尔三次曲线

    张风捷特烈
  • 用python制作动态图表看全球疫情变化趋势

    最近国内疫情已经有所好转,但是国外的情况不容乐观,那么怎样用python去制作动态图表来看全球疫情变化趋势呢?比如下面的国内外疫情发展趋势

    刘早起

扫码关注云+社区

领取腾讯云代金券