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实现多线程下载文件的代码实例
Jun 01 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
python 读写txt文件 json文件的实现方法
Oct 22 Python
python如何将图片转换为字符图片
Aug 19 Python
Django实战之用户认证(用户登录与注销)
Jul 16 Python
在PyCharm下打包*.py程序成.exe的方法
Nov 29 Python
python 扩展print打印文件路径和当前时间信息的实例代码
Oct 11 Python
Python数据可视化:顶级绘图库plotly详解
Dec 07 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
Apr 20 Python
浅谈Python 函数式编程
Jun 20 Python
django下创建多个app并设置urls方法
Aug 02 Python
详解Go语言运用广度优先搜索走迷宫
Jun 23 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
PHP个人网站架设连环讲(三)
2006/10/09 PHP
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
php将字符串全部转换成大写或者小写的方法
2015/03/17 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
一个JavaScript防止表单重复提交的实例
2014/10/21 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
JQuery实现Ajax加载图片的方法
2015/12/24 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
深入分析jQuery.one() 函数
2020/06/03 jQuery
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
Python实现自动发送邮件功能
2021/03/02 Python
python机器学习之神经网络(一)
2017/12/20 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
个人找工作求职简历的自我评价
2013/10/20 职场文书
门诊挂号室室长岗位职责
2013/11/27 职场文书
班组长岗位职责
2014/03/03 职场文书
2014组织生活会方案
2014/05/19 职场文书
租房安全协议书
2014/08/20 职场文书
高中班主任评语
2014/12/30 职场文书
如何制作自己的原生JavaScript路由
2021/05/05 Javascript
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android