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创建进程fork用法
Jun 04 Python
python实现判断数组是否包含指定元素的方法
Jul 15 Python
python 获取网页编码方式实现代码
Mar 11 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
python+matplotlib绘制饼图散点图实例代码
Jan 20 Python
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
python的concat等多种用法详解
Nov 28 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
Python之变量类型和if判断方式
May 05 Python
Django使用django-simple-captcha做验证码的实现示例
Jan 07 Python
Python列表的索引与切片
Apr 07 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 Memcache 中实现消息队列
2009/11/24 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
用javascript getComputedStyle获取和设置style的原理
2008/10/10 Javascript
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
JavaScript 原型链学习总结
2010/10/29 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
jquery的相对父元素和相对文档定位示例代码
2013/08/02 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
2015/04/14 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
2020/07/20 Python
如何用Python徒手写线性回归
2021/01/25 Python
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
护理自我鉴定范文
2013/10/06 职场文书
出国考察邀请函
2014/01/21 职场文书
单位工作证明
2014/10/07 职场文书
新年晚会开场白
2015/05/29 职场文书
教学副校长工作总结
2015/08/13 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS