python 画图 动态,python动态显示图片
众所周知,从展示效果来看:
视频图文字。
如果你想在工作报告中展示你的数据,你可以尝试用python制作动画。
python中的核心函数动画将使用matplotlib库的这个函数1:
matplotlib . animation . func animation(fig,func,frames=None,init_func=None,fargs=None,save_count=None,*,cache_frame_data=True,* * kwargs)[来源]
主要参数:
Fig:一个图形对象,用于获取绘图、调整大小和任何其他需要的事件。Func:每一帧调用的函数,第一个参数将是下一帧的值。Frames:传递func的数据源,动画的每一帧可以是迭代器、整数、生成器函数,也可以是none。Fargs:传递给func(frame,*fargs)的附加参数interval:帧之间的延迟(以毫秒为单位)。默认值为200。Repeat:可选,控制当帧序列完成时动画是否应该重复。Blit:可选,控制是否使用blit来优化图形。例以最常用的正态分布为例。我们来画一个正态分布曲线,模拟正态分布随参数和变化的动画。
正态分布的概率密度函数如下:
f ( x ,)=1 22 e(x)2 22 f(x\mu,\sigma)=\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(x,)=22 1 e 22(x)2
参数是随机变量的数学期望,决定了正态分布的位置。我们可以画一个正态分布随变化的动画:
从移动图中也可以看出,随着的增大,正态分布在X轴上向右移动。在图表上绘制代码:
import numpy as NP import matplotlib . py plot as PLT import matplotlib . animation as animation import math % matplotlib qt5 #显示在jupyter notebook # mu=0 #标准差sigma=1 # x x=NP。linspace (mu-4 * sigma,mu12 * sigma,00) #正态分布的概率密度函数y=NP . exp(-(x-mu)* * 2/(2 * sigma * * 2))/(math . sqrt(2 * math . pi)* sigma)FIG,ax=plt.subplots () line,=Y)def animate _ mu(I):mu=I # Update data line . set _ Y data(NP . exp(-(x-mu)* * 2/(2 * sigma * * 2))/(math . sqrt(2 * math . pi)* sigma))更新标题ax.set _ title (f mu={mu} )返回行,ani=animation . func animation(FIG,animate _ mu,interval=500,repeat=true,blit=true) #保存动画ani.save(demo_mu.gif )参数
从移动图中可以看出,随着标准差的减小,曲线会变得更加陡峭,这意味着随机事件的分布更加集中。
随着标准差的增加,曲线变得更平坦,意味着随机事件的分布更加分散。
在图表上绘制代码:
# 均值mu=0 #标准差西格玛=1 # x的值域范围x=np.linspace(mu - 3*sigma,mu 3*sigma,100)#正态分布的概率密度函数y=NP。exp(-(x-mu)* * 2/(2 * sigma * * 2))/(数学。sqrt(2 *数学。pi)* sigma)fig,ax=plt.subplots()line,=ax.plot(x,y)def animate _ sigma(I):sigma=i/10线。set _ y数据(NP。exp(-(x-mu)* * 2/(2 * sigma * * 2))/(数学。sqrt(2 *数学。pi)* sigma))#更新数据ax.set_title(fsigma={sigma} )返回行,ani=动画FuncAnimation( fig,animate_sigma,interval=500,repeat=True,blit=True)#保存动图ani.save(demo_sigma.gif)#显示动图plt.show()注意:如果你是在朱皮特笔记本中绘制,需要加上这句%matplotlib qt5才能显示动画效果。
动画的保存方式2:
# 保存动图:ani.save(demo.gif)#保存视频方式一:ani.save(movie.mp4)#保存视频方式二:编剧=动画FFMpegWriter( fps=15,metadata=dict(artist=Me ),比特率=1800)ani.save(movie.mp4 ,writer=writer)https://matplotlib。org/3。2 .1/API/_ as _ gen/matplotlib。动画。func动画。html
马特普罗特里布街https://号。org/3。3 .0/图库/动画/简单_动画。html #sphx-glr-gallery-animation-simple-anim-py
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。