python 如何绘制动图,举个例子:将300张SST月均数据绘制生成gif动画

最近,在绘制SST月均数据时,突然想看看近几十年sst的大致变化过程。说白了就是绘制一张gif动画,也算是学习过程啦。
大概思路就是:
首先生成你的图片,然后将生成的所有图片汇总为一个gif文件。

关于数据,我这里使用的是SST月平均数据,说白了就是每年12个月,应该绘制12个图片。
有多少年,就生成year*12张图片。
当然,部分年份可能没有完整的12月,但是咱这里不考虑太多,就是生成图片然后绘制gif动画而已。

代码主要如下,分为两个部分:部分细节大家感兴趣的可以再修整,或者私聊我进行讨论都可以~·

import cartopy.feature as cfeature
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import numpy as np
import xarray as xr
import os
data=xr.open_dataset('..\\sst.mnmean.nc')#读取数据
data = data.sortby("lat", ascending= True)#将纬度按照升序排列
sst=data.sel(lat=slice(-20.5,20.5),time=slice("1982", "2019"))#挑选想看的年份和经纬度范围
lon=sst.lon.data#读取lon数据
lat=sst.lat.dataplt.rcParams['font.family']='Times New Roman'
plt.rcParams['font.size']=15day=np.arange(0,456)
#循环绘图
for i in day:fig=plt.figure(figsize=(20,12))proj=ccrs.PlateCarree(central_longitude=180)ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree(central_longitude =180))cb=ax.contourf(lon,lat,sst.sst.data[i],transform= ccrs.PlateCarree(),\cmap=('RdBu_r'),levels=np.arange(20,35))ax.add_feature(cfeature.NaturalEarthFeature('physical', 'land', '50m', \edgecolor='white', facecolor='white',zorder=2))ax.set_xticks(np.arange(0, 361, 30),crs=ccrs.PlateCarree())ax.set_yticks(np.arange(-20, 40, 20),crs=ccrs.PlateCarree())ax.xaxis.set_major_formatter(LongitudeFormatter(zero_direction_label =False))#经度0不加标识ax.yaxis.set_major_formatter(LatitudeFormatter())#加上经纬度°E、Nax.tick_params(which='major', direction='inout', length=5, width=0.99,\pad=12, bottom=True, left=True, right=False, top=False)ax.set_title('SST-'+str(i))ax.set_xlabel('Longitude')ax.set_ylabel('Latitude')plt.savefig('D:\\desktopppp\\month\\'+str(i)+'.png')#设置保存图片的位置
print('绘制完成')
#=====================绘制gif动画================================
import PIL
import numpy as np
image=[]
mon=np.arange(1,456)#图片的个数
for i in mon:new=PIL.Image.open('D:\\desktopppp\\month\\'+str(i)+'.png')image.append(new)
image[0].save('SST.gif',format='GIF',append_images=image[1: ],save_all=True,duration=0.5,loop=0)#相关参数设置可以网络搜索一下,duration是间隔速率
print('gif绘制完成')

第一部分代码运行结束后可以发现图片已经全部保存到指定路径啦:

第二部分代码运行结束后,发现gif图片也生成出来啦:

OK,简单记录一下~~
有兴趣的小伙伴们快去尝试一下吧~

python 如何绘制动图(将300张图片生成gif动画)相关推荐

  1. 【数据处理】python使用matplotlib如何绘制动图;如何使用python进行动图gif制作;实时绘制动态图

    一.现有的集成工具 绘制动图可以用一些现有的集成库,但是很麻烦,你需要调整和他们一样的参数和格式,定制化程度比较低,还得再去搞懂它们的东西.比如这些现有的: https://github.com/Ja ...

  2. python学习之matplotlib绘制动图(FuncAnimation()参数)

    1.函数FuncAnimation(fig,func,frames,init_func,interval,blit)是绘制动图的主要函数,其参数如下: a.fig 绘制动图的画布名称 b.func自定 ...

  3. python怎么变成动图_python可以做动图吗

    ImageMagick 是一套功能强大.稳定而且开源的工具集和开发包,可以用来读.写和处理超过200种基本格式的图片文件,包括PNG,JPEG,GIF,HEIC,TIFF,DPX,EXR,WebP,P ...

  4. Python生物信息学⑥绘制热图及火山图

    Python生物信息学⑥绘制热图及火山图 Python生物信息学③提取差异基因 通过上Python生物信息学③提取差异基因得到了该数据集的差异分析的两个关键参数,1.差异倍数(foldchange)以 ...

  5. Python matplotlib绘制雷达图

    Python matplotlib绘制雷达图 本篇文章介绍使用matplotlib绘制雷达图. 雷达图也被称为网络图,蜘蛛图,星图,蜘蛛网图,是一个不规则的多边形.雷达图可以形象地展示相同事物的多维指 ...

  6. python制作雷达图_如何利用Python matplotlib绘制雷达图

    本篇文章介绍使用matplotlib绘制雷达图. 雷达图也被称为网络图,蜘蛛图,星图,蜘蛛网图,是一个不规则的多边形.雷达图可以形象地展示相同事物的多维指标,雷达图几乎随处可见,应用场景非常多. 一. ...

  7. pyhthon数据分析——matplotlib绘制动图且如何保存gif动图

    绘制动图需要用到matplotlib中的animation模块 import numpy as np import matplotlib.pyplot as plt from matplotlib i ...

  8. 使用python matplotlib实现动图绘制

    前言 想写数据动态可视化很久了,但是网上竟然没有一份能直接用的代码,昨天终于狠下心来死啃了一波开发者文档搞定了这部分,贴一篇blog记录一下希望可以帮到你. 思路 动图的核心函数是matplotlib ...

  9. python制作gif动画_实用的Python(2)利用Python制作gif动图

    一.简介 moviepy是一个专门用于视频剪辑制作的模块,可以自动化完成很多繁琐的视频剪辑处理工作,除了处理视频数据之外,moviepy中还内置了可以制作gif动图的功能,通过使用moviepy.ed ...

最新文章

  1. go语言mysql视频_Go语言实战流媒体视频网站
  2. 网络优化正在从经验型优化向大数据关联分析优化转变
  3. python十七:高阶函数
  4. RabbitMQ—为什么使用信道channel
  5. JAVA跟MYSQL数据库交互_【编写Java程序实现与Mysql数据库的连接,并交互性的实现简单查询,删除,修改,排序,显示等操作】...
  6. mtk pwmlinux timer
  7. 数据库两个表有一个字段互相关联,根据这个关联字段更新一张表
  8. Golang AES 加解密
  9. mysql多表连接的几种写法
  10. MySQL备份还原——mysqldump工具介绍
  11. localhost提示没有入口_管家婆财贸双全连接失败,服务器端没有找到加密狗
  12. 色彩校正中的Gamma(人眼亮度感应的非线性)
  13. 多媒体大作业 ps+flash
  14. 联想服务器CPU系列,联想推出采用第三代英特尔至强处理器的ThinkSystem SR860 V2服务器...
  15. 05 RTMP Chunk Stream
  16. just for save
  17. Python学习笔记(纯代码)
  18. 学了Python不想去给别人打工,那就做做这些事儿吧!
  19. 去除停用词并绘制词云图
  20. Nginx跨域配置、防盗链配置

热门文章

  1. 土木工程毕业设计436例
  2. Windows 8中无法使用Aero:6个仍可以使用的Aero功能
  3. 2022年青龙面板部署完整版教程(多图)
  4. 深度学习完全攻略!(连载十二:SSD网络理解)
  5. 前端link标签引入css教程
  6. 程序员必备的十大职业生存技巧,收藏保命!
  7. 运维(31) JumpServer v2.20.2 部署使用
  8. MFC发送消息(一)
  9. 如何正确理解企业文化
  10. 概率论学习笔记之李雅普诺夫定理