iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python Matplotlib绘制动画的代码怎么写
  • 858
分享到

Python Matplotlib绘制动画的代码怎么写

2023-06-30 16:06:25 858人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python Matplotlib绘制动画的代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python Matplotlib绘制动画的代码怎么写文章都会有所收获,

这篇文章主要介绍了python Matplotlib绘制动画的代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python Matplotlib绘制动画的代码怎么写文章都会有所收获,下面我们一起来看看吧。

matplotlib 动画

我们想制作一个动画,其中正弦和余弦函数在屏幕上逐步绘制。首先需要告诉matplotlib我们想要制作一个动画,然后必须指定想要在每一帧绘制什么。一个常见的错误是重新绘制每一帧的所有内容,这会使整个过程非常缓慢。相反地,只能更新必要的内容,因为我们知道许多内容不会随着帧的变化而改变。对于折线图,我们将使用set_data方法更新绘图,剩下的工作由matplotlib完成。

注意随着动画移动的终点标记。原因是我们在末尾指定了一个标记(markevery=[-1]),这样每次我们设置新数据时,标记就会自动更新并随着动画移动。参见下图。

Python Matplotlib绘制动画的代码怎么写

import numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animationfig = plt.figure(figsize=(7, 2))ax = plt.subplot()X = np.linspace(-np.pi, np.pi, 256, endpoint=True)C, S = np.cos(X), np.sin(X)(line1,) = ax.plot(X, C, marker="o", markevery=[-1],                    markeredgecolor="white")(line2,) = ax.plot(X, S, marker="o", markevery=[-1],                    markeredgecolor="white")def update(frame):    line1.set_data(X[:frame], C[:frame])    line2.set_data(X[:frame], S[:frame])plt.tight_layout()ani = animation.FuncAnimation(fig, update, interval=10)

如果我们现在想要保存这个动画,matplotlib可以创建一个mp4文件,但是选项非常少。一个更好的解决方案是使用外部库,如FFmpeg,它可以在大多数系统上使用。安装完成后,我们可以使用专用的FFMpegWriter,如下图所示:

writer = animation.FFMpegWriter(fps=30)anim = animation.FuncAnimation(fig, update,                                interval=10,                               frames=len(X))anim.save("sine-cosine.mp4", writer=writer, dpi=100)

注意,当我们保存mp4动画时,动画不会立即开始,因为实际上有一个与影片创建相对应的延迟。对于正弦和余弦,延迟相当短,可以忽略。但对于长且复杂的动画,这种延迟会变得非常重要,因此有必要跟踪其进展。因此我们使用tqdm库添加一些信息。

from tqdm.autonotebook import tqdmbar = tqdm(total=len(X)) anim.save("../data/sine-cosine.mp4",           writer=writer, dpi=300,          progress_callback = lambda i, n: bar.update(1)) bar.close()

Python Matplotlib绘制动画的代码怎么写

Python Matplotlib绘制动画的代码怎么写

[Errno 2] No such file or directory: 'ffmpeg'

如果你在 MacOS 上,只需通过 homebrew 安装它:brew install ffmpeg

人口出生率

Python Matplotlib绘制动画的代码怎么写

x = data['指标'].valuesrate= data['人口出生率(‰)']y = rate.valuesxvals = np.linspace(2002,2021,1000)yinterp = np.interp(xvals,x,y)(line1,) = ax.plot(xvals, yinterp, marker="o",                    markevery=[-1], markeredgecolor="white")text = ax.text(0.01, 0.95,'text', ha="left", va="top",                transfORM=ax.transAxes, size=25)ax.set_xticks(x)def update(frame):    line1.set_data(xvals[:frame], yinterp[:frame])    text.set_text("%d 年人口出生率(‰) " % int(xvals[frame]))    return line1, text

男女人口总数

Python Matplotlib绘制动画的代码怎么写

# 设置画布fig = plt.figure(figsize=(10, 5))ax = plt.subplot()# 数据准备X = data['指标']male, female =data['男性人口(万人)'], data['女性人口(万人)']# 绘制折线图(line1,) = ax.plot(X, male, marker="o",                    markevery=[-1], markeredgecolor="white")(line2,) = ax.plot(X, female, marker="o",                    markevery=[-1], markeredgecolor="white")# 设置图形注释text = ax.text(0.01, 0.75,'text',                ha="left", va="top",                transform=ax.transAxes,size=20)text2 = ax.text(X[0],male[0], '', ha="left", va="top")text3 = ax.text(X[0],female[0], '', ha="left", va="top")# 设置坐标轴刻度标签ax.set_xticks(X)ax.set_yticks([])# 设置坐标轴线格式ax.spines["top"].set_visible(False)ax.spines["left"].set_visible(False)ax.spines["right"].set_visible(False)# 定义更新函数def update(frame):    line1.set_data(X[:frame+1], male[:frame+1])    line2.set_data(X[:frame+1], female[:frame+1])    text.set_text("%d 人口(万人)" % X[frame])    text2.set_position((X[frame], male[frame]))    text2.set_text(f'男性: {male[frame]}')    text3.set_position((X[frame], female[frame]))    text3.set_text(f'女性: {female[frame]}')    return line1,line2, text# 定义输出plt.tight_layout()writer = animation.FFMpegWriter(fps=5)# 执行动画anim = animation.FuncAnimation(fig, update, interval=500, frames=len(X))# 存储动画# 设置进度条bar = tqdm(total=len(X))anim.save(    "num_people2.mp4",    writer=writer,    dpi=300,    progress_callback=lambda i, n: bar.update(1),)# 关闭进度条bar.close()

雨滴

Python Matplotlib绘制动画的代码怎么写

# 设置雨滴绘图更新函数def rain_update(frame):    global R, scatter  # 数据获取    R["color"][:, 3] = np.maximum(0, R["color"][:, 3] - 1 / len(R))    R["size"] += 1 / len(R)    i = frame % len(R)    R["position"][i] = np.random.uniform(0, 1, 2)    R["size"][i] = 0    R["color"][i, 3] = 1    # 散点形状设置    scatter.set_edgecolors(R["color"])    scatter.set_sizes(1000 * R["size"].ravel())    scatter.set_offsets(R["position"])    return (scatter,)# 绘制画布fig = plt.figure(figsize=(6, 8), facecolor="white", dpi=300)ax = fig.add_axes([0, 0, 1, 1], frameon=False)  # , aspect=1)# 绘制初始化散点图scatter = ax.scatter([], [], s=[],                      linewidth=0.5, edgecolors=[],                      facecolors="None",cmap='rainbow')# 设置雨滴数量n = 250# 为雨滴设置参数值R = np.zeros(    n, dtype=[("position", float, (2,)),               ("size", float, (1,)),              ("color", float, (4,))])R["position"] = np.random.uniform(0, 1, (n, 2))R["size"] = np.linspace(0, 1.5, n).reshape(n, 1)R["color"][:, 3] = np.linspace(0, 1, n)# 设置坐标轴格式ax.set_xlim(0, 1), ax.set_xticks([])ax.set_ylim(0, 1), ax.set_yticks([])# 保存同上

关于“Python Matplotlib绘制动画的代码怎么写”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python Matplotlib绘制动画的代码怎么写”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网Python频道。

--结束END--

本文标题: Python Matplotlib绘制动画的代码怎么写

本文链接: https://www.lsjlt.com/news/330459.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python Matplotlib绘制动画的代码怎么写
    这篇文章主要介绍了Python Matplotlib绘制动画的代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python Matplotlib绘制动画的代码怎么写文章都会有所收获,...
    99+
    2023-06-30
  • Android绘制平移动画的示例代码怎么编写
    今天就跟大家聊聊有关Android绘制平移动画的示例代码怎么编写,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、具体操作步骤创建ImageView对象创建ObjectAnimato...
    99+
    2023-06-26
  • python绘制字符画视频的示例代码怎么写
     读取视频通过imageio读取视频,除了pip install imageio之外,还需要pip install imageio-ffmpeg。由于视频中的图像都是彩色的,故而需要将rgb三色转为单一的强度,并将转化后的图像装入...
    99+
    2023-06-25
  • PythonMatplotlib绘制动画的代码详解
    目录matplotlib 动画人口出生率男女人口总数雨滴matplotlib 动画 我们想制作一个动画,其中正弦和余弦函数在屏幕上逐步绘制。首先需要告诉matplotlib我们想要制...
    99+
    2024-04-02
  • python绘制词云图的代码怎么写
    要绘制词云图,你可以使用Python中的wordcloud库。以下是一个简单的例子: from wordcloud import W...
    99+
    2024-04-09
    python
  • Python matplotlib绘制散点图的实例代码
    前言 前面说到的主要是matplotlib对于图像的基础操作,然后从这篇开始,主要说一下点图,分析点图在实际问题的数据处理中应用非常广泛,比如说逻辑回归是利用现有的数据点通过拟合得到...
    99+
    2024-04-02
  • python绘制正方形的代码怎么写
    可以使用Python的turtle模块来绘制正方形。以下是一个简单的例子:```pythonimport turtle# 创建一个t...
    99+
    2023-09-29
    python
  • Android绘制平移动画的示例代码
    目录1、具体操作步骤2、具体实施创建ImageView创建ObjectAnimator对象3、具体实例activity_main.xmlMainActivity.java1、具体操作...
    99+
    2024-04-02
  • Python 图形绘制详细代码怎么写
    这篇文章给大家介绍Python 图形绘制详细代码怎么写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、条形图下面介绍条形图的画法。1.1 代码import matplotlib.pyplot&nb...
    99+
    2023-06-22
  • Python实现一行代码自动绘制艺术画
    目录1.准备2.开始使用 Discoart3.显示/保存/加载配置DiscoArt 是一个很牛的开源模块,它能根据你给定的关键词自动绘画。 绘制过程是完全可见的,你可以在 jupyt...
    99+
    2022-12-30
    Python自动绘制艺术画 Python绘制艺术画 Python 艺术画
  • vue的css动画代码怎么写
    这篇文章主要介绍了vue的css动画代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue的css动画代码怎么写文章都会有所收获,下面我们一起来看看吧。代码:   ....
    99+
    2024-04-02
  • Python+Matplotlib绘制双y轴图像的示例代码
    目录双Y轴图简介实现思路实现代码样式一样式二双Y轴图简介  双Y轴图顾名思义就是在一个图里有两个Y轴。这种图形主要用来展示两个因变量和一个自变量的关系并且两个因变量的数值单...
    99+
    2024-04-02
  • C#绘制鼠标的代码怎么写
    要在C#中绘制鼠标,可以使用System.Windows.Forms命名空间中的Mouse类。以下是一个简单的示例代码:```csharpusing System;using System.Drawing;using System.Wi...
    99+
    2023-08-11
    C#
  • python绘制字符画视频的示例代码
    目录 读取视频转为字符动画已经11月了,不知道还有没有人看华强买瓜。。。要把华强卖瓜做成字符视频,总共分为三步 读取视频 把每一帧转为字符画 把字...
    99+
    2024-04-02
  • Android开场动画代码怎么写
    Android开场动画可以通过使用Android的动画框架来实现。以下是一个例子,展示如何在Android开场动画中淡入一个Imag...
    99+
    2023-08-18
    Android
  • python画心形代码怎么写
    要用Python画心形,可以使用turtle库来绘制。以下是一个例子:```pythonimport turtle# 设置画笔速度和...
    99+
    2023-10-12
    python
  • Python怎么绘制Matplotlib柱状图
    这篇文章主要讲解了“Python怎么绘制Matplotlib柱状图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么绘制Matplotlib柱状图”吧!前言:柱状图是一种使用矩形...
    99+
    2023-06-30
  • python画同心圆的代码怎么写
    您可以使用Python的turtle模块来绘制同心圆。下面是一个画同心圆的示例代码:pythonimport turtledef d...
    99+
    2023-10-18
    python
  • python画饼状图的代码怎么写
    要使用Python绘制饼状图,可以使用`matplotlib`库。下面是一个简单的例子: import matplotlib.pyp...
    99+
    2023-10-26
    python
  • Java绘制迷宫动画并显示的示例代码
    一次性全部绘制出来 实现代码 import java.awt.*; public class AlgoVisualizer { private static int...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作