当前位置: 首页 > news >正文

广州网站建站小店网站怎么做

广州网站建站,小店网站怎么做,没有数据怎么做网站,网拍外宣怎么推广【1】引言 前序教程中的曲线动态输出,其实是把曲线按照左右移动的形式输出(波的传递形式)。 python画图|曲线动态输出基础教程_python 动态曲线-CSDN博客 但有些时候我们更期待的是曲线不移动,随着自变量的增加而输出因变量&am…

【1】引言

前序教程中的曲线动态输出,其实是把曲线按照左右移动的形式输出(波的传递形式)。

python画图|曲线动态输出基础教程_python 动态曲线-CSDN博客

但有些时候我们更期待的是曲线不移动,随着自变量的增加而输出因变量,因此这是两种曲线输出教程。

基于上述区别说明,很有必要对后一种方法进行探索。

【2】官网教程

首先点击下述链接可以直达官网,我们将会看到期待的动态输出曲线。

https://matplotlib.org/stable/gallery/animation/animate_decay.html#sphx-glr-gallery-animation-animate-decay-py

基于此我们对官网教程进行解读。

【3】代码解读

首先引入了好几个模块:

import itertools #引入itertools模块,可实现变量无限输出import matplotlib.pyplot as plt #引入画图模块
import numpy as np #引入计算模块import matplotlib.animation as animation #引入动画模块

这里的itertools模块第一次引入,可以实现比自变量的无限输出。

然后先定义了一个变量产生函数,并将自变量和因变量的关系进行了定义:

def data_gen(): #自定义函数,使用itertools.count()模块for cnt in itertools.count(): #创造一个从0开始,步长是1的无线循环,输出结果全部赋值给cntt = cnt / 10  # 计算cnt/10后赋值给tyield t, np.sin(2*np.pi*t) * np.exp(-t/10.) #返回t, np.sin(2*np.pi*t) * np.exp(-t/10.)

之后再定义了变量的范围:

def init(): #自定义函数ax.set_ylim(-1.1, 1.1) #设置Y轴范围ax.set_xlim(0, 1) #设置X轴范围del xdata[:] #定义一个空矩阵xdata[]del ydata[:] #定义一个空矩阵ydata[]line.set_data(xdata, ydata) #设置曲线的自变量和因变量return line, #返回曲线的数值

其实直到此时,才完成要画图对应各个变量的定义,并且自变量和因变量还是空矩阵。

完成变量的初步定义之后,定义要画图:

fig, ax = plt.subplots() #定义要画图
line, = ax.plot([], [], lw=2) #定义要画曲线
ax.grid() #给输出曲线增加网格
xdata, ydata = [], [] #定义xdata和ydata为空矩阵

在前述的定义中,自变量一直未实质赋值,接下来通过append()函数进行赋值,并修改了X轴的范围:

def run(data): #自定义函数# update the datat, y = data #定义变相t和yxdata.append(t) #xdata为t的所有取值ydata.append(y) #ydata为y的所有取值xmin, xmax = ax.get_xlim() #X轴的最小值和最大值(xmin和xmax)从xlim()中取出if t >= xmax: #当自变量超出X轴上限ax.set_xlim(xmin, 2*xmax) #将X轴取值扩大两倍ax.figure.canvas.draw() #输出图形line.set_data(xdata, ydata) #定义曲线变量return line, #返回曲线值

最后实现动态输出:

ani = animation.FuncAnimation(fig, run, data_gen, interval=100, init_func=init,save_count=100) #输出动画
plt.show() #输出图形

此时获得的输出结果为:

5f7b30fa721849abb0956694981b6eb1.gif

图1

此时对应的完整代码为:

import itertools #引入itertools模块,可实现变量无限输出import matplotlib.pyplot as plt #引入画图模块
import numpy as np #引入计算模块import matplotlib.animation as animation #引入动画模块def data_gen(): #自定义函数,使用itertools.count()模块for cnt in itertools.count(0.,0.5): #创造一个从0开始,步长是1的无线循环,输出结果全部赋值给cntt = cnt / 10  # 计算cnt/10后赋值给tyield t, np.sin(2*np.pi*t) * np.exp(-t/10.) #返回t, np.sin(2*np.pi*t) * np.exp(-t/10.)def init(): #自定义函数ax.set_ylim(-1.1, 1.1) #设置Y轴范围ax.set_xlim(0, 1) #设置X轴范围del xdata[:] #定义一个空矩阵xdata[]del ydata[:] #定义一个空矩阵ydata[]line.set_data(xdata, ydata) #设置曲线的自变量和因变量return line, #返回曲线的数值fig, ax = plt.subplots() #定义要画图
line, = ax.plot([], [], lw=2) #定义要画曲线
ax.grid() #给输出曲线增加网格
xdata, ydata = [], [] #定义xdata和ydata为空矩阵def run(data): #自定义函数# update the datat, y = data #定义变相t和yxdata.append(t) #xdata为t的所有取值ydata.append(y) #ydata为y的所有取值xmin, xmax = ax.get_xlim() #X轴的最小值和最大值(xmin和xmax)从xlim()中取出if t >= xmax: #当自变量超出X轴上限ax.set_xlim(xmin, 2*xmax) #将X轴取值扩大两倍ax.figure.canvas.draw() #输出图形line.set_data(xdata, ydata) #定义曲线变量return line, #返回曲线值# Only save last 100 frames, but run forever
ani = animation.FuncAnimation(fig, run, data_gen, interval=100, init_func=init,save_count=100) #输出动画
plt.show() #输出图形
#ani.save('ani.gif') #保存动画

实际上,当在PC上运行上述代码时,输出的图形是无限的,不会停止。

bb12fb654cdb44539af6c65e3a35a07b.png

图2

这是因为itertools.count()函数并没有给出任何停止输出自变量的信号,因此有必要设置输出停止代码。

【3】代码改写

在itertools.count()函数下方增加break操作:

if(t>20):break

此时的完整代码为:

import itertools #引入itertools模块import matplotlib.pyplot as plt #引入画图模块
import numpy as np #引入计算模块import matplotlib.animation as animation #引入动画模块def data_gen(): #自定义函数,使用itertools.count()模块for cnt in itertools.count(0.,0.5): #创造一个从0开始,步长是1的无线循环,输出结果全部赋值给cntt = cnt / 10  # 计算cnt/10后赋值给tyield t, np.sin(2*np.pi*t) * np.exp(-t/10.) #返回t, np.sin(2*np.pi*t) * np.exp(-t/10.)if(t>20):breakdef init(): #自定义函数ax.set_ylim(-1.1, 1.1) #设置Y轴范围ax.set_xlim(0, 1) #设置X轴范围del xdata[:] #定义一个空矩阵xdata[]del ydata[:] #定义一个空矩阵ydata[]line.set_data(xdata, ydata) #设置曲线的自变量和因变量return line, #返回曲线的数值fig, ax = plt.subplots() #定义要画图
line, = ax.plot([], [], lw=2) #定义要画曲线
ax.grid() #给输出曲线增加网格
xdata, ydata = [], [] #定义xdata和ydata为空矩阵def run(data): #自定义函数# update the datat, y = data #定义变相t和yxdata.append(t) #xdata为t的所有取值ydata.append(y) #ydata为y的所有取值xmin, xmax = ax.get_xlim() #X轴的最小值和最大值(xmin和xmax)从xlim()中取出if t >= xmax: #当自变量超出X轴上限ax.set_xlim(xmin, 2*xmax) #将X轴取值扩大两倍ax.figure.canvas.draw() #输出图形line.set_data(xdata, ydata) #定义曲线变量return line, #返回曲线值# Only save last 100 frames, but run forever
ani = animation.FuncAnimation(fig, run, data_gen, interval=0.10, init_func=init,save_count=1000) #输出动画
ani.save('ani-1000.gif') #保存动画
plt.show() #输出图形

运行代码后将发现,自变量最大值为20:

f89d06124ff0449db8c172463ccf17e4.gif

图3

【4】总结

探索了曲线动态输出的教程,掌握了输出范围等的设置技巧。

 

http://www.yayakq.cn/news/835240/

相关文章:

  • 生物做实验的网站没有充值入口的传奇
  • 有无专门做网站会员人数迅速增加的方法网站开发时的闭包写法
  • 昆山移动网站建设成都网站建设制作公司
  • 毕设做购物网站系统的原因濮阳市城乡一体化示范区地图
  • 济南网站推广哪家好专业 网站建设
  • 网站软件定制开发公司1元做网站方案
  • 网站建设意向书怎么找到一个公司的网站
  • 北京手机网站制作多少钱百度账号找回
  • 经销做网站都有什么好处深圳网站制作企业邮箱
  • 凡科网上建设成功的网站海淀网站建设
  • 南京市城市建设档案馆网站万维网网站备案流程
  • 自己做的网站如何制作后台网络营销渠道的组成要素包括
  • 深圳市南山区建设局网站网站建设项目报价单
  • 福州网站搭建安徽新增13个高风险区
  • 海外短视频平台网站wordpress 修改主题页面
  • 做海报的网站有哪些内容网站建设英语词汇
  • 郑州网站建设维护网络域名注册流程
  • 建设网站加盟公司品牌网站建设
  • 制作大型网站开发网站建设的项目计划
  • 昆山建设投标网站wordpress 后台登录慢
  • 网站后台管理员职责做网站 商标分类
  • 毕业答辩ppt模板免费下载网站沧州青县机械加工网
  • 建立 wiki 网站软件开发合同协议
  • 做公司网站怎么推广网站建设一般多少钱要如何选择
  • 维护一个网站网站如何在国外推广
  • 做磨砂卡贴的网站想要网站推广页
  • 汕头网站安全开发系统傻瓜式做网站哪个软件好
  • 南昌城乡住房建设厅网站WordPress老文章提示
  • 怎么做淘宝网站的网页做类似电驴网站
  • 天津企业网站开发免费网页奖励自己游戏网站