在python里把图变成gif

news2024/9/19 13:52:46
import scipy.io
import matplotlib.pyplot as plt
import imageio
import numpy as np

data = scipy.io.loadmat("/文件路径/Sol.mat")

# 提取数据
t_current = data['t'].flatten()
XX, YY = np.meshgrid(data['x'].flatten(), data['y'].flatten())
u_pred_plot_final = data['u_pred_plot_final']
v_pred_plot_final = data['v_pred_plot_final']
p_pred_plot_final = data['p_pred_plot_final']

# 创建保存GIF的函数
def save_gif(images, filename):
    imageio.mimsave(filename, images, fps=5)

# 初始化存储每个子图的图像列表
uvp_pred_images = []

for k in range(len(t_current)):
    fig = plt.figure()
    plt.subplots_adjust(wspace=1, hspace=1)
    fig.suptitle('t = ' + str(t_current[k]), fontsize=15)

    plt.subplot(3, 1, 1)
    plt.pcolor(XX, YY, u_pred_plot_final[:, :, k], cmap='viridis')
    plt.axis('equal')
    plt.colorbar()
    plt.title('u_pred')
    plt.show()

    plt.subplot(3, 1, 2)
    plt.pcolor(XX, YY, v_pred_plot_final[:, :, k], cmap='Blues')
    plt.axis('equal')
    plt.colorbar()
    plt.title('v_pred')

    plt.subplot(3, 1, 3)
    plt.pcolor(XX, YY, p_pred_plot_final[:, :, k], cmap='cividis')
    plt.axis('equal')
    plt.colorbar()
    plt.title('p_pred')

    fig.canvas.draw()
    uvp_pred_images.append(np.array(fig.canvas.renderer.buffer_rgba()))

    plt.close(fig)

# 保存为GIF
save_gif(uvp_pred_images, "uvp_pred.gif")


print("GIFs were successfully created and saved.")

Remark: 如果用了plt.axis('equal')后画的图画布留白,可能是因为设置了画布大小fig = plt.figure(figsize=(5, 15)),把这个去掉直接用fig = plt.figure()

在这里插入图片描述
上述代码根据.mat提供的数据生成的gif。(这里是Natural Outflow Boundary Conditions)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2118625.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

轻松应对:环保专包二级资质续期常见问题解答

在环保专包二级资质续期过程中,企业可能会遇到一系列常见问题。以下是对这些问题的详细解答,旨在帮助企业轻松应对续期挑战: 一、政策理解与把握 问题:如何准确理解和把握最新的环保政策和资质续期要求? 解答&#x…

HCIA--实验十三:VLAN间通信子接口实验/双单臂路由实验

一、实验内容 1.需求/要求: 将两个单臂路由通过两台交换机连接起来,成为双臂路由,并探讨这么做的原因。实现全网通,让任何一台主机之间都可以通信。 二、实验过程 1.拓扑图: 2.步骤: 1.给PC配置ip地址…

传感器技术在构建实时监控系统中有什么作用

在无线传感器技术中,物联网生成的传感器数据通过无线方式传输到网络服务器,工程师可以在其中跟踪参数。远距离无线通信提高了工业 4.0 的成本效率并减少了人力。实时监控系统旨在显示传感器节点周围的快速变化,这需要快速、低延迟的数据传输。…

数据分析与挖掘课程相关资源

这是在gitee上整的关于这门课的一个开源项目。 https://gitee.com/rainpet/python-data-analysis-and-mining-demo 头歌平台。 常见问题: 1、如何确认conda的版本,执行如下命令: conda list anaconda$2、实验室登陆后,无法上网&a…

JAVA开源项目 大学生租房平台 计算机毕业设计

本文项目编号 T 019 ,文末自助获取源码 \color{red}{T019,文末自助获取源码} T019,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

浅谈人工智能之基于ollama的常见变量设置

浅谈人工智能之基于ollama的常见变量设置 全局命令设置 现象:无法直接使用命令ollama 问题显示如下: [rootlocalhost LLM]# ollama -bash: ollama: command not found 解决方法一: 第一步:输入如下命令: [rootloca…

Android Studio偶尔打开Flutter项目没有智能提示的解决方案

Flutter支持多种IDE来编程,我曾使用过Android Studio和VSC两款软件,但因为长期使用Android Studio的原因,使用起来会比VSC顺手,然后就发现偶尔AS加载Flutter项目会无法使用智能提示,也没有代码高亮等 问题出现的原因&…

力扣面试150 三角形最小路径和 DFS 记忆化搜索 DP 滚动数组优化DP

Problem: 120. 三角形最小路径和 &#x1f469;‍&#x1f3eb; 甜姐题解 Code class Solution {// 朴素DP// public int minimumTotal(List<List<Integer>> triangle) {// int n triangle.size();// int[][] dp new int[n1][n1];// for(int i n-1; i > 0…

公积金基数两万,养了征信三个月之后,结果怎么样了?

近期&#xff0c;有幸与一位颇具代表性的信贷经历者&#xff0c;进行了深入的交流。她的故事&#xff0c;尤其是对那些在信贷领域迷茫徘徊的朋友来说&#xff0c;无疑是一盏警示灯&#xff0c;提醒我们如何在金融海洋中稳健航行。 黄女士的信贷迷航 黄女士&#xff0c;一位拥有…

SpringMvc 之处理器方法参数解析器(HandlerMethodArgumentResolver)

概述 HandlerMethodArgumentResolver 是 Spring MVC 框架中的一个关键组件&#xff0c;用于解析控制器&#xff08;Controller&#xff09;方法的参数。在 Spring MVC 中&#xff0c;当一个请求到达时&#xff0c;DispatcherServlet 会负责找到对应的处理器&#xff08;即控制器…

9月9日星期一今日早报简报微语报早读

9月9日星期一&#xff0c;农历八月初七&#xff0c;早报微语早读。 1、庆祝第40个教师节&#xff0c;全国585个单位、1790人受表彰&#xff1b; 2、中国残奥军团94金76银50铜收官&#xff1a;连续6届残奥会金牌和奖牌榜第一&#xff1b; 3、三部门&#xff1a;拟允许在京津沪…

1688电商运营到底怎么做竞品分析(超细节)

你得学会看同行数据&#xff0c;因为同行是蕞好的老师。你把同行分析透&#xff0c;把市场分析透以后&#xff0c;你才能真正的做好这个类目。我们就来详细的讲一下具体该怎么去分析同行&#xff0c;以及要看竞品的哪些数据。 一、分析市场 就是先看一下你的这个产品&#xf…

【go-zero】api与rpc使用k8s服务发现和部署

【go-zero】api与rpc使用k8s服务发现和部署 k8s安装 参考 debian12极简快速安装k8s 1、代码准备 参考上一篇【go-zero】api与rpc使用etcd服务发现 代码搬过来&#xff0c;因为要用到k8s环境换到linux了 &#xff0c;做一下修改 rpc 修改一下rpc的logic文件&#xff0c;增…

运放双电源供电和单电源供电的区别

运放是一种常见的电路元器件&#xff0c;广泛应用于模拟电路中。它可以使用不同的电源电压进行供电&#xff0c;其中最常见的是双电源供电和单电源供电。 下面将详细介绍它们之间的区别。 1.双电源供电 双电源供电意味着运放有两个电源引脚&#xff1a;正极和负极。正极一般连…

docker部署it工具箱,各种工具包

1.效果 2.步骤 2.1安装docker&&docker-compose 复制粘贴两脚本 bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrorsmain/DockerInstallation.sh)curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose…

调度任务是什么?如何设置调度任务?

本文将解释什么是调度任务&#xff0c;并且以FineDataLink为例说明如何设置调度任务。 一. 什么是调度任务&#xff1f; 调度平台是管理和自动化 ETL 的任务执行工具&#xff0c;通过指定任务依赖关系和执行顺序实现任务的自动执行&#xff0c;一般需要代码开发&#xff0c;使…

一些面试和找工作的技巧-新资要的低并不会给你加分薪资要的高不会成为公司拒绝你的核心理由

面试相关 自我介绍的模板 使用STAR描述->描述项目介绍 核心岗位是内推&#xff0c;或者朋友 所以给同事留个好印象 面试最后一道送命题目 你还有什么想问的吗? 这个问题体现了你深度思考的能力&#xff0c;对 一轮面试官可能是你的直属领导&#xff0c;你可以问题你进…

GIS大事件!Bentley收购Cesium

9月6日&#xff0c;Cesium官方宣布加入Bentley。 Bentley我们并不陌生。最初Acute3D被Bentley公司收购&#xff0c;旗下软件由Smart3DCapture转型到ContextCapture&#xff0c;现又改名 iTwin Capture。 如今又收购了Cesium。 Cesium官方表示&#xff0c;Cesium开发平台与iTwi…

python编程二维码里放视频

动植物标本制作大赛 需要制作一个关于植物标本的二维码 存放采集植物的视频 笑了 pip install qrcode pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 新建文件贴入代码如下&#xff1a; import qrcode import cv2# 视频链接 video_url "…

新学期学生资料在线收集,老师用它一分钟搞定!

金秋九月&#xff0c;校园里再次迎来了新学期的热闹景象。学生们满怀期待地步入教室&#xff0c;而老师们则开始了新一学期的准备工作。在这些准备工作中&#xff0c;统计和整理学生资料是不可或缺的一环。这项工作虽然基础&#xff0c;却对教学活动的顺利开展至关重要。现在有…