教你用Python matplotlib库制作简单的动画
作者:人工智能第一菜鸡 发布时间:2021-08-20 02:58:49
标签:Python,matplotlib,动画
matplotlib制作简单的动画
动画即是在一段时间内快速连续的重新绘制图像的过程.
matplotlib提供了方法用于处理简单动画的绘制:
import matplotlib.animation as ma
def update(number):
pass
# 每隔30毫秒,执行一次update
ma.FuncAnimation(
mp.gcf(), # 作用域当前窗体
update, # 更新函数的函数名
interval=30 # 每隔30毫秒,执行一次update
)
案例1:
随机生成各种颜色的100个气泡, 让他们不断增大.
1.随机生成100个气泡.
2.每个气泡拥有四个属性: position, size, growth, color
3.把每个气泡绘制到窗口中.
4.开启动画,在update函数中更新每个气泡的属性并重新绘制
"""
简单动画
1. 随机生成100个气泡.
2. 每个气泡拥有四个属性: position, size, growth, color
3. 把每个气泡绘制到窗口中.
4. 开启动画,在update函数中更新每个气泡的属性并重新绘制
"""
import numpy as np
import matplotlib.pyplot as mp
import matplotlib.animation as ma
n = 100
balls = np.zeros(n, dtype=[
('position', float, 2), # 位置属性
('size', float, 1), # 大小属性
('growth', float, 1), # 生长速度
('color', float, 4)]) # 颜色属性
# 初始化每个泡泡
# uniform: 从0到1取随机数,填充n行2列的数组
balls['position']=np.random.uniform(0,1,(n,2))
balls['size']=np.random.uniform(50,70,n)
balls['growth']=np.random.uniform(10,20,n)
balls['color']=np.random.uniform(0,1,(n,4))
# 绘制100个泡泡
mp.figure('Bubble', facecolor='lightgray')
mp.title('Bubble', fontsize=18)
mp.xticks([])
mp.yticks([])
sc = mp.scatter(balls['position'][:,0],
balls['position'][:,1],
balls['size'],
color=balls['color'])
# 启动动画
def update(number):
balls['size'] += balls['growth']
# 让某个泡泡破裂,从头开始执行
boom_i = number % n
balls[boom_i]['size'] = 60
balls[boom_i]['position']= \
np.random.uniform(0, 1, (1, 2))
# 重新设置属性
sc.set_sizes(balls['size'])
sc.set_offsets(balls['position'])
anim = ma.FuncAnimation(
mp.gcf(), update, interval=30)
mp.show()
案例2
"""
模拟心电图
"""
import numpy as np
import matplotlib.pyplot as mp
import matplotlib.animation as ma
mp.figure('Signal', facecolor='lightgray')
mp.title('Signal', fontsize=16)
mp.xlim(0, 10)
mp.ylim(-3, 3)
mp.grid(linestyle=':')
pl = mp.plot([],[], color='dodgerblue',
label='Signal')[0]
# 启动动画
def update(data):
t, v = data
x, y = pl.get_data() #x y: ndarray数组
x = np.append(x, t)
y = np.append(y, v)
# 重新绘制图像
pl.set_data(x, y)
# 移动坐标轴
if x[-1]>5:
mp.xlim(x[-1]-5, x[-1]+5)
x = 0
def generator():
global x
y = np.sin(2 * np.pi * x) * \
np.exp(np.sin(0.2 * np.pi * x))
yield (x, y)
x += 0.05
anim = ma.FuncAnimation(mp.gcf(),
update, generator, interval=30)
mp.show()
来源:https://blog.csdn.net/weixin_45081640/article/details/117660264


猜你喜欢
- 原来的语句是这样的: select sum(sl0000) from xstfxps2 where dhao00 in ( select d
- 用python实现的抓取腾讯视频所有电影的爬虫# -*- coding: utf-8 -*-import reimport urllib2f
- MySQL外键约束的禁用与启用:MySQL外键约束是否启用是通过一个全局变量标示的:FOREIGN_KEY_CHECKS=0; 禁用状态FO
- 今天遇到一个问题,在同事随意的提示下,用了 itertools.groupby 这个函数。不过这个东西最终还是没用上。问题就是对一个list
- 今天是五一劳动节,可是我们劳动人民的节日哦。很多大网站都设计了特殊的logo来表示向每一位普通的劳动者致敬!下面就让我们看看这些logo吧!
- 前言大家应该都有所体会,随着硬件层面的发展,linux系统多核已经是普通趋势,而mysql是单进程多线程,所以先天上对多进程的利用不是很高,
- 计时器用来定时执行任务,分享一段代码:package mainimport "time"import "fmt
- 这篇文章主要介绍了Django多进程滚动日志问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 本文实例讲述了python冒泡排序简单实现方法。分享给大家供大家参考。具体实现方法如下:#!/usr/bin/pythonimport ra
- 很久以前写过如何成为优秀的设计师,近半年来经常做设计评审,有很多感触,顺便写一点下来,我们的Blog也应该有更高的更新频率。言归正传,我认为
- python数组进行降维在深度学习训练过程中,我们有时候想要输出图片看看图片长什么样,但是训练时的图片格式一般都会多出一个批次的维度,如[1
- 最近迁移了wordpress,系统升级为CentOS 6,很奇怪的一个问题,在原来CentOS 5.8下用的很正常的定时备份数据库并通过邮件
- 更改主题File → Settings → Appearance & Behavior → Appearance → Theme结果
- 用 Python 关机你肯定听过或者实践过,那么用 Python 开机呢?这是一个神奇的方法,教你如何用 Python 来开机。GitHub
- 1.remove: 删除单个元素,删除首个符合条件的元素,按值删除,从左向右依次删除符合条件的值举例说明:>>> str=
- 交代背景作为一名合格的 Python 程序员,在工作中必然会用到二维码相关操作,那如何快速的用 Python 实现呢?别着急,咱们这篇博客就
- 刚刚解决了这个问题,现在记录下来问题描述当使用lambda层加入自定义的函数后,训练没有bug,载入保存模型则显示Nonetype has
- 1、SQL SERVER 2005的性能工具中有SQL Server Profiler和数据库引擎优化顾问,极好的东东,必须熟练使用。 2、
- 本文实例讲述了Python模拟登录12306的方法。分享给大家供大家参考。具体实现方法如下:#!/usr/bin/python# -*- c
- 在javascript开发过程中,如果总是使用alert的方式调试程序,在某些简单的程序中是可行的. 但是在通常的项目很复杂,这