当前位置:主页 > 业界动态 > WEB3.0 > Matplotlib 可视化进阶之动画

Matplotlib 可视化进阶之动画

2022-06-02 16:47:44来源:互联网

文章导读
作者 | 云朵君 来源 | 数据STUDIO 使用matplotlib可以很容易地创建动画框架。我们从一个非常简单的动画开始。 matplotlib 动画 我们想制作一个动画,其中正弦和余弦函数在屏幕上逐步绘制。首先 ...

Matplotlib 可视化进阶之动画

作者 | 云朵君来源 | 数据STUDIO使用matplotlib可以很容易地创建动画框架。我们从一个非常简单的动画开始。 matplotlib 动画 我们想制作一个动画,其中正弦和余弦函数在屏幕上逐步绘制。首先需要告诉matplotlib我们想要制作一个动画,然后必须指定想要在每一帧绘制什么。一个常见的错误是重新绘制每一帧的所有内容,这会使整个过程非常缓慢。相反地,只能更新必要的内容,因为我们知道许多内容不会随着帧的变化而改变。对于折线图,我们将使用set_data方法更新绘图,剩下的工作由matplotlib完成。注意随着动画移动的终点标记。原因是我们在末尾指定了一个标记(markevery=[-1]),这样每次我们设置新数据时,标记就会自动更新并随着动画移动。importnumpyasnp
importmatplotlib.pyplotasplt
importmatplotlib.animationasanimation

fig=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")

defupdate(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库添加一些信息。

fromtqdm.autonotebookimporttqdm
bar=tqdm(total=len(X))
anim.save("../data/sine-cosine.mp4",
writer=writer,dpi=300,
progress_callback=lambdai,n:bar.update(1))
bar.close()

Matplotlib 可视化进阶之动画

[Errno 2] No such file or directory: 'ffmpeg'如果你在 macOS 上,只需通过 homebrew 安装它:brew install ffmpeg

人口出生率


Matplotlib 可视化进阶之动画


x=data['指标'].values
rate=data['人口出生率(‰)']
y=rate.values
xvals=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)

defupdate(frame):
line1.set_data(xvals[:frame],yinterp[:frame])
text.set_text("%d年人口出生率(‰)"%int(xvals[frame]))
returnline1,text

男女人口总数


Matplotlib 可视化进阶之动画

热门文章
日榜 周榜
1 V神:加密世界的和平与共识 需要斗争与付出

10-15 年前的「新理想主义运动」场景与今天的一个很大区别在于,当时人们感觉可以同时加入...

2 Vitalik:激进去中心化——实现自由之路

如今,各种世界性问题层出不穷,民粹主义甚嚣尘上。资本和技术都没有带给我们“美好的明...

3 Meta Football World Cup进军足球元宇宙

你肯定听说过 Metaverse ,以及它会如何成为互联网的下一个版本。对大多数人来说,它带来了巨...

4 世界首台常温量子计算机启用!无需绝对零度,主核竟然「镶钻

新智元报道 编辑:拉燕 好困 【新智元导读】 21世纪初「一直有进展、永远没落地」的吹嘘性...

5 Web3将开辟新大陆

告诉我动机,我就会告诉你结果。 查理·芒格的这句著名的台词虽然有点过于简单,但有点像...

6 全球Web3生态云端峰会顺利收官,GWEI 2022-新加坡大会即将接棒!

2022年4月13日,由DeFi之道主办的全球Web3生态创新云端峰会(Global Web3 Eco Innovation Online Summit)正...

7 Web3公司收入情况概览:Ethereum成最强收入机器

TLDR; 结论: (1)总收入: Web3商业模式已经大有发展,其中最强大的仍然是出售区块空间,其...

8 为什么说a16z可能在“垄断”Web 3?

距离Bill Hwang单日暴亏150亿美元,终结中概股行情仅过去一年,另一位韩国人Do Kwon用了三天,便...

9 热点新闻 | 小派发布行业首款8K双模一体机Pimax Crystal、MagicLeap

XR领域热点新闻 撰写:新浪VR |图源:互联网 |排版:潇飞 小派发布行业首款8K双模一体机Pima...

10 NBA Top Shot 已经衰落;「饥饿游戏」联合制片人推出Web3多媒体科

眼看NBA Top Shot高楼起,又见它不合时宜的衰落 「饥饿游戏」联合制片人推出Web3.0多媒体科幻项...

1 V神:加密世界的和平与共识 需要斗争与付出

10-15 年前的「新理想主义运动」场景与今天的一个很大区别在于,当时人们感觉可以同时加入...

2 Vitalik:激进去中心化——实现自由之路

如今,各种世界性问题层出不穷,民粹主义甚嚣尘上。资本和技术都没有带给我们“美好的明...

3 Meta Football World Cup进军足球元宇宙

你肯定听说过 Metaverse ,以及它会如何成为互联网的下一个版本。对大多数人来说,它带来了巨...

4 世界首台常温量子计算机启用!无需绝对零度,主核竟然「镶钻

新智元报道 编辑:拉燕 好困 【新智元导读】 21世纪初「一直有进展、永远没落地」的吹嘘性...

5 Web3将开辟新大陆

告诉我动机,我就会告诉你结果。 查理·芒格的这句著名的台词虽然有点过于简单,但有点像...

6 全球Web3生态云端峰会顺利收官,GWEI 2022-新加坡大会即将接棒!

2022年4月13日,由DeFi之道主办的全球Web3生态创新云端峰会(Global Web3 Eco Innovation Online Summit)正...

7 Web3公司收入情况概览:Ethereum成最强收入机器

TLDR; 结论: (1)总收入: Web3商业模式已经大有发展,其中最强大的仍然是出售区块空间,其...

8 为什么说a16z可能在“垄断”Web 3?

距离Bill Hwang单日暴亏150亿美元,终结中概股行情仅过去一年,另一位韩国人Do Kwon用了三天,便...

9 热点新闻 | 小派发布行业首款8K双模一体机Pimax Crystal、MagicLeap

XR领域热点新闻 撰写:新浪VR |图源:互联网 |排版:潇飞 小派发布行业首款8K双模一体机Pima...

10 NBA Top Shot 已经衰落;「饥饿游戏」联合制片人推出Web3多媒体科

眼看NBA Top Shot高楼起,又见它不合时宜的衰落 「饥饿游戏」联合制片人推出Web3.0多媒体科幻项...

撤稿申请|

备案号:鄂ICP备2022006215号 Copyright © 2002-2022 metaversezj.com.cn 元宇宙之家 版权所有