Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Matplotlib创建动画

使用Matplotlib创建动画

作者头像
fanjy
发布于 2022-04-13 06:02:54
发布于 2022-04-13 06:02:54
1.5K00
代码可运行
举报
文章被收录于专栏:完美Excel完美Excel
运行总次数:0
代码可运行

标签:Python,Matplotlib库

Matplotlib是一个强大的Python绘图库,但许多人可能不知道它能够创建动画图。

图1

什么是动画?

简单地说,动画由一系列略微有些变化的静态图像组成。当把这些静态图像放在一起并快速翻阅时,我们的眼睛和大脑会欺骗我们,让我们觉得这些图像在移动(尽管它们不是)。

基于这种理解,要制作动画绘图,需要:

1.创建大量静态图像/图表

2.把它们按顺序翻动

可以使用pip安装matplotlib,只需在命令提示符/终端窗口中键入以下内容:

pip install matplotlib

使用Matplotlib制作动画

将用matplotlib制作一个简单的动画:一个在半径为1.5的圆中移动的红点。

首先,需要一个函数来计算圆的x和y坐标。这里没有使用x^2+y^2=r^2公式,而是使用圆的参数表示:

x = cos(t)

y = sin(t)

其中t是一个角度量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%matplotlib notebook
import matplotlib.pyplot as plt
import math
from matplotlib.animation import FuncAnimation
def circle_coords(r, step):
   coords = []
   t = 0
   while t < 2 * math.pi:
        coords.append((r*math.cos(t),r*math.sin(t)))
        t += step
   return coords
coords = circle_coords(1.5, 0.1)

代码运行后,coords内的结果如下图2所示。

图2

步骤1:创建一个静态图表

为坐标系coords中的第一组(x,y)坐标创建一个带有红点的图表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fig, ax = plt.subplots()
ax.scatter(x=coords[0][0],y=coords[0][1],c='red', marker = 'o')

此代码在(1.5,0)处创建一个红点:

图3

步骤2:创建许多静态图表

下一步是创建大量略有变化的静态图表。将使用前5个坐标创建5个图表来说明这一点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fig, axs = plt.subplots(nrows = 1,ncols = 5, figsize = (10, 5), tight_layout = True)
for i, ax in enumerate(axs):
   ax.scatter(x=coords[i][0],y=coords[i][1], c='red', marker='o')
   ax.set_xlim([0,2])
   ax.set_ylim([-0.5,2])

结果如下图4所示。

图4

如此狭窄的图表上是想说明,当浏览每个图表时,圆点是向上和向右移动的。

Matplotlib中的FuncAnimation模块

从技术上讲,只需要创建多个静态图表(每个坐标对应一个),然后将它们组合在一起,就会有一个动画。然而,matplotlib库提供了一个FuncAnimation模块来实现这一点。

要使用FuncAnimation,需要一个函数来绘制静态图表。绘图函数的名称无关紧要,这里将其命名为update():

1.绘图函数接受1个参数i,这意味着帧编号。

2.该函数将在每次调用开始时清除图表,因此在每一帧只会看到一个红点。

3.ax.set_xlim()和ax.set_ylim()函数以确保修复x轴和y轴。

4.ax.scatter()一次只画一个红点。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from matplotlib.animation import FuncAnimation
def update(i):
   ax.clear()
   ax.set_facecolor(plt.cm.Blues(.2))
   ax.set_xlim([-2,2])
   ax.set_ylim([-2,2])
   ax.set_title('circling')
   ax.scatter(x=coords[i][0],y=coords[i][1],c='red',marker='o')
   [spine.set_visible(False) for spine in ax.spines.values()] #移除图表轮廓

现在,有了绘图函数,可以创建FuncAnimation对象,它接受以下参数:

1.fig:要绘制的图形对象

2.func:绘图/更新函数

3.frames:要创建的帧数(静态图像)

4.interval:帧间延迟(毫秒)

甚至可以将动画保存为gif文件并发送给其他人:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fig, ax =plt.subplots(figsize=(6,6))
anime = FuncAnimation(
   fig = fig,
   func = update,
   frames = len(coords),
   interval = 50
)
anime.save('circle.gif')

有兴趣的朋友可以试试看!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
matplotlib 动画(animation)
matplotlib 的 animation子模块的 FuncAnimation()函数支持动画功能,可用于动态绘图。
用户6021899
2019/08/14
3K0
基于Matplotlib的高级数据可视化技术与实践探索
文章链接:https://cloud.tencent.com/developer/article/2466769
一键难忘
2024/11/21
2580
用Python绘制动态爱心形状:实现浪漫动画效果
在编程世界中,艺术与代码的结合常常能创造出令人惊叹的作品。无论你是想为特别的日子制作一个浪漫的动画,还是单纯地想通过代码展示你的创造力,绘制一个动态的爱心形状都是一个绝佳的选择。本文将指导你使用Python和Matplotlib库一步步实现这个动效。
屿小夏
2024/09/25
2.2K0
Matplotlib库
Matplotlib 是 Python 中非常流行且广泛使用的数据可视化库,主要用于创建各种类型的图表和图形。它提供了丰富的绘图功能,支持静态、动态和交互式的图表。以下是关于 Matplotlib 的基础知识总结:
用户11315985
2024/10/16
2660
Matplotlib库
用Python创建波浪效果:模拟海浪动态效果
海浪的起伏给人一种宁静而美丽的感觉。使用Python,我们可以创建一个动态的波浪效果,模拟海浪的起伏,给人一种置身于海边的感觉。本文将带你一步步实现这一效果,并展示如何使用Matplotlib库进行动画制作。
屿小夏
2024/09/25
1890
Python绘制动态正弦波:波动效果的实现方法
正弦波是数学和物理中常见的波形,广泛应用于信号处理、声音合成和物理模拟等领域。在这篇博客中,我们将使用Python绘制一个动态的正弦波,展示波动效果的实现方法。本文将带你一步步实现这一效果,并展示如何使用Matplotlib库进行动画制作。
屿小夏
2024/09/25
1980
【python入门项目】在 Python 中创建条形图追赶动画
动画是使可视化更具吸引力和用户吸引力的好方法。它帮助我们以有意义的方式展示数据可视化。Python 帮助我们使用现有的强大 Python 库创建动画可视化。Matplotlib是一个非常流行的数据可视化库,通常用于数据的图形表示以及使用内置函数的动画。
海拥
2021/09/28
2.4K0
在Python中实现条形图动态追赶动画效果
动画是提高可视化吸引力和用户吸引度的优秀手段。它能够以有意义的方式展示数据可视化。Python提供了强大的库,使我们能够轻松创建动画可视化。Matplotlib是一个广受欢迎的数据可视化库,通常用于绘制数据图表以及创建基于内置函数的动画。
一键难忘
2023/12/13
4430
Matplotlib中的titles(标题)、labels(标签)和legends(图例)
Matplotlib是一个Python中常用的绘图库,用于创建各种类型的图表。在Matplotlib中,你可以使用titles(标题)、labels(标签)和legends(图例)来增强你的图表。本文讨论Python的Matplotlib绘图库中可用的不同标记选项。
deephub
2023/12/13
7900
Matplotlib中的titles(标题)、labels(标签)和legends(图例)
可视化技能之Matplotlib(下)|可视化系列02
在本系列的上篇文章里,我们从Matplotlib的基础可视化框架开始,逐步画出折线图、柱状图等基础图表,通过对坐标轴标签、标题文本等的精细调节画出信息更明确丰富的可视图,也实践了双轴图及子图,最后看了下极坐标系下绘图的效果。本篇继续探索Matplotlib的强悍可视化能力。
蛰虫始航
2020/04/08
1.6K0
可视化技能之Matplotlib(下)|可视化系列02
python数据分析之Matplotlib学习笔记
说到绘图,那必须要有一个画板。Figure作为一个“老画板”,在matlab中经常能看到它的出没,在python中,它的具体语法是什么呢?让我们来看一下。
远方的星
2021/07/31
8590
python数据分析之Matplotlib学习笔记
Matplotlib新手上路(下)
接上篇继续,这次来演示下如何做动画,以及加载图片 一、动画图 import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation fig, ax = plt.subplots() x = np.arange(0, 2 * np.pi, 0.01) line, = ax.plot(x, np.sin(x)) def init(): line.set_ydata([np.nan]
菩提树下的杨过
2018/03/28
8580
Matplotlib新手上路(下)
机器学习-05-回归算法-python动画展示
懂业务+会选择合适的算法+数据处理+算法训练+算法调优+算法融合 +算法评估+持续调优+工程化接口实现
用户2225445
2025/03/15
1370
机器学习-05-回归算法-python动画展示
matplotlib动画制作(1)
本公众号致力于python数据分析和可视化,会不定期发布技术内容。如果觉得本文文章有用,点击上方"python数据可视化之美"关注我的公众号,原创文章将会第一时间推送,如有建议,可添加微信交流或评论区留言。
python数据可视化之路
2023/09/06
5330
matplotlib动画制作(1)
Matplotlib从入门到精通03-布局格式定方圆
参考: https://datawhalechina.github.io/fantastic-matplotlib/%E7%AC%AC%E4%B8%80%E5%9B%9E%EF%BC%9AMatplotlib%E5%88%9D%E7%9B%B8%E8%AF%86/index.html
用户2225445
2023/10/16
2920
Matplotlib从入门到精通03-布局格式定方圆
数据可视化基础与应用-03-matplotlib库从入门到精通01-05
本系列是数据可视化基础与应用的第03篇,主要介绍基于matplotlib实现数据可视化。
用户2225445
2024/03/21
8890
数据可视化基础与应用-03-matplotlib库从入门到精通01-05
用Matplotlib制作动画
动画是呈现各种现象的有趣方式。在描述像过去几年的股票价格、过去十年的气候变化、季节性和趋势等时间序列数据时,与静态图相比,动画更能说明问题。因为,从动画中,我们可以看到特定参数是如何随时间而变化的。
昱良
2019/11/24
2.3K0
Matplotlib的详细使用及原理
Matplotlib是一个Python 2D绘图库,能够以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形,用来绘制各种静态,动态,交互式的图表。
@小森
2024/03/15
2290
Matplotlib的详细使用及原理
随机多边形迭代成椭圆
一个随机多边形,将其各个顶点移动到原来各边的中点,不断迭代,最终会形成一个椭圆!
用户6021899
2021/09/15
6800
随机多边形迭代成椭圆
用Google Colab,怎样让机器学习图表动起来?
毕竟它无需安装、功能强大、支持实时协作,还能免费蹭Google云上的GPU,比Jupyter Notebooks不知高到哪里去了。
量子位
2018/07/24
1.9K0
用Google Colab,怎样让机器学习图表动起来?
相关推荐
matplotlib 动画(animation)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验