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正则表达式 re模块使用说明
May 19 Python
跟老齐学Python之复习if语句
Oct 02 Python
python修改操作系统时间的方法
May 18 Python
详解Python的Django框架中Manager方法的使用
Jul 21 Python
Python缩进和冒号详解
Jun 01 Python
Python+pandas计算数据相关系数的实例
Jul 03 Python
python pexpect ssh 远程登录服务器的方法
Feb 14 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
python3利用Socket实现通信的方法示例
May 06 Python
pyinstaller打包单个exe后无法执行错误的解决方法
Jun 21 Python
pycharm不能运行.py文件的解决方法
Feb 12 Python
python中前缀运算符 *和 **的用法示例详解
May 28 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
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
innerHTML 和 getElementsByName 在IE下面的bug 的解决
2010/04/09 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
python爬取网站数据保存使用的方法
2013/11/20 Python
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
Python fileinput模块使用实例
2015/05/28 Python
python实现简单socket通信的方法
2016/04/19 Python
视觉直观感受若干常用排序算法
2017/04/13 Python
Python实现的堆排序算法示例
2018/04/29 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
乔丹诺(Giordano)酒庄德国官网:找到最好的意大利葡萄酒
2017/12/28 全球购物
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
人事部主管岗位职责
2013/12/26 职场文书
旅游项目开发策划书
2014/01/18 职场文书
法人授权委托书
2014/04/03 职场文书
2015年大学生工作总结
2015/04/21 职场文书
推普标语口号大全
2015/12/26 职场文书
修改并编译golang源码的操作步骤
2021/07/25 Golang
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js
Win11开始菜单添加休眠选项
2022/04/19 数码科技
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis