Python使用Slider组件实现调整曲线参数功能示例


Posted in Python onSeptember 06, 2019

本文实例讲述了Python使用Slider组件实现调整曲线参数功能。分享给大家供大家参考,具体如下:

一 代码

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider,Button,RadioButtons
fig, ax = plt.subplots()
plt.subplots_adjust(left=0.1, bottom=0.25)
t = np.arange(0.0,1.0,0.001)
#初始振幅与频率,并绘制初始图形
a0, f0=5,3
s = a0*np.sin(2*np.pi*f0*t)
l,= plt.plot(t, s, lw=2, color='red')
#设置坐标轴刻度范围
plt.axis([0,1,-10,10])
axColor ='lightgoldenrodyellow'
#创建两个Slider组件,分别设置位置/尺寸、背景色和初始值
axfreq = plt.axes([0.1,0.1,0.75,0.03], axisbg=axColor)
sfreq =Slider(axfreq,'Freq',0.1,30.0, valinit=f0)
axamp = plt.axes([0.1,0.15,0.75,0.03], axisbg=axColor)
samp =Slider(axamp,'Amp',0.1,10.0, valinit=a0)
#为Slider组件设置事件处理函数
def update(event):
#获取Slider组件的当前值,并以此来更新图形
amp = samp.val
freq = sfreq.val
l.set_ydata(amp*np.sin(2*np.pi*freq*t))
plt.draw()
#fig.canvas.draw_idle()
sfreq.on_changed(update)
samp.on_changed(update)
def adjustSliderValue(event):
ampValue = samp.val +0.05
if ampValue >10:
ampValue =0.1
samp.set_val(ampValue)
freqValue = sfreq.val +0.05
if freqValue >30:
freqValue =0.1
sfreq.set_val(freqValue)
update(event)
axAdjust = plt.axes([0.6,0.025,0.1,0.04])
buttonAdjust =Button(axAdjust,'Adjust', color=axColor, hovercolor='red')
buttonAdjust.on_clicked(adjustSliderValue)
#创建按钮组件,用来恢复初始值
resetax = plt.axes([0.8,0.025,0.1,0.04])
button =Button(resetax,'Reset', color=axColor, hovercolor='yellow')
def reset(event):
sfreq.reset()
samp.reset()
button.on_clicked(reset)
###用来控制图形颜色的
##rax = plt.axes([0.025, 0.5, 0.15, 0.15], axisbg=axColor)
##radio = RadioButtons(rax, ('red', 'blue', 'green'), active=0)
##def colorfunc(label):
## l.set_color(label)
## fig.canvas.draw_idle()
##radio.on_clicked(colorfunc)
plt.show()

二 运行结果

Python使用Slider组件实现调整曲线参数功能示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python常用的内置序列结构(列表、元组、字典)学习笔记
Jul 08 Python
Python文件夹与文件的相关操作(推荐)
Jul 25 Python
python字符串查找函数的用法详解
Jul 08 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 Python
python中with语句结合上下文管理器操作详解
Dec 19 Python
tensorflow 保存模型和取出中间权重例子
Jan 24 Python
使用python无账号无限制获取企查查信息的实例代码
Apr 17 Python
python输出数学符号实例
May 11 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
Python  word实现读取及导出代码解析
Jul 09 Python
python爬虫--selenium模块
Mar 31 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
Sep 06 #Python
Python数学形态学实例分析
Sep 06 #Python
Python统计分析模块statistics用法示例
Sep 06 #Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
Sep 06 #Python
python监控nginx端口和进程状态
Sep 06 #Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
Sep 06 #Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 #Python
You might like
如何利用http协议发布博客园博文评论
2015/08/03 PHP
举例讲解PHP面对对象编程的多态
2015/08/12 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
js技巧--转义符"\"的妙用
2007/01/09 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
jQuery 获取select选中值及清除选中状态
2016/12/13 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
详解小程序云开发数据库
2019/05/20 Javascript
jquery 插件重新绑定的处理方法分析
2019/11/23 jQuery
javascript实现画板功能
2020/04/12 Javascript
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
python解析xml文件操作实例
2014/10/05 Python
python动态参数用法实例分析
2015/05/25 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
如何基于Python创建目录文件夹
2019/12/31 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
2014年小班元旦活动方案
2014/02/16 职场文书
大课间体育活动方案
2014/03/12 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
安全生产目标责任书
2014/04/14 职场文书
《社戏》教学反思
2014/04/15 职场文书
高三毕业典礼演讲稿
2014/05/13 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
农业项目投资意向书
2015/05/09 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python