matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)

絕刀狂花
发布: 2025-09-17 08:44:01
原创
811人浏览过

在之前的教程中,我们已经学习了如何生成动态的数据统计图,这次我们将这种方法应用于数据排行榜。

01— 柱形图实现

第一步:实现一个最简单的柱形统计图

让我们从一个简单的柱形图开始。

from matplotlib import pyplot  # 导入模块
fig, ax = pyplot.subplots()  # 返回一个包含figure和axes对象的元组,将元组分解为fig和ax两个变量
<p>def graph(num):
ax.barh(1, num, color='#adb0ff')  # 绘制水平方向的条形图barh()
ax.barh(3, num, color='#ffb3ff')  # 绘制水平方向的条形图barh()
ax.barh(5, num, color='#90d595')  # 绘制水平方向的条形图barh()
pyplot.show()</p><p>graph(1)
登录后复制

实现结果如图所示:我们绘制了三条统计图。

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)

第二步:给每条柱体加上文字

现在我们为每条柱体添加文字。

ax.text(num, 1, "广东省", size=14, weight=600, ha='right', va='bottom')  # 添加文字并设置样式
登录后复制

第三步:解决乱码

由于中文可能会出现乱码,我们需要进行特殊处理。

from pylab import mpl
mpl.rcParams['font.sans-serif'] = ["SimHei"]
mpl.rcParams['axes.unicode_minus'] = False
登录后复制

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)

第四步:赋予每条柱形不同的值,使其看起来在变动

我们引入math模块来为柱形图赋予不同的值。

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)

第五步:让我们的数据动起来

我们发现柱形图已经动起来了,但文字仍然静止。如何解决这个问题呢?

Sudowrite
Sudowrite

对用户最友好的AI写作工具

Sudowrite 169
查看详情 Sudowrite

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)

from matplotlib import animation
from matplotlib import pyplot
from pylab import mpl
import math

mpl.rcParams['font.sans-serif'] = ["SimHei"] mpl.rcParams['axes.unicode_minus'] = False

fig, ax = pyplot.subplots() # 返回一个包含figure和axes对象的元组,将元组分解为fig和ax两个变量

def graph(num): ax.clear() # 清除,不叠加 ax.barh(1, num, color='#adb0ff') # 绘制水平方向的条形图barh() ax.text(num, 1, "广东省", size=14, weight=600, ha='right', va='bottom') # 添加文字并设置样式 ax.barh(3, num / math.pi, color='#ffb3ff') ax.text(num / math.pi, 3, "北京省", size=14, weight=600, ha='right', va='bottom') ax.barh(5, num / math.tan(1), color='#90d595') ax.text(num / math.tan(1), 5, "云南省", size=14, weight=600, ha='right', va='bottom') pyplot.title('人口工作情况对比') # 添加图标题

animator = animation.FuncAnimation(fig, graph, frames=range(1, 100), interval=1) pyplot.show() # 移动到函数外面,不然不会动态显示

登录后复制

我们继续完善,实现动态效果:

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)

02— 完整代码

注意:保存视频或图片需要使用插件,并设置环境变量

在Windows上安装ffmpeg:

from matplotlib import animation
from matplotlib import pyplot
from pylab import mpl
import math</p><p>mpl.rcParams['font.sans-serif'] = ["SimHei"]
mpl.rcParams['axes.unicode_minus'] = False</p><p>fig, ax = pyplot.subplots()  # 返回一个包含figure和axes对象的元组,将元组分解为fig和ax两个变量</p><p>def graph(num):
ax.clear()
if num == 50:
ax.barh(1, 50, color='#adb0ff')  # 绘制水平方向的条形图barh()
ax.text(50, 1, "广东省", size=14, weight=600, ha='right', va='bottom')  # 添加文字并设置样式
if num == 70:
ax.barh(3, num - 1, color='#ffb3ff')
ax.text(num - 1, 3, "北京省", size=14, weight=600, ha='right', va='bottom')
ax.barh(5, num, color='#90d595')
ax.text(num, 5, "云南省", size=14, weight=600, ha='right', va='bottom')
pyplot.title('人口工作情况对比')  # 添加图标题</p><p>animator = animation.FuncAnimation(fig, graph, frames=range(1, 100), interval=1)
animator.save(filename="数据.gif", writer='pillow')  # 保存gif
animator.save(filename="数据.mp4")  # 保存视频
pyplot.show()  # 移动到函数外才能正常显示
登录后复制

通过以上步骤,我们成功完成了动态数据视频的制作。

以上就是matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)的详细内容,更多请关注php中文网其它相关文章!

免费看片app
免费看片app

必备看片神器!Netflix、美剧、韩剧、动漫,全网资源永久免费。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号