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中获取网页状态码的两个方法
Nov 03 Python
Python中字符串的格式化方法小结
May 03 Python
win10环境下python3.5安装步骤图文教程
Feb 03 Python
Python3 适合初学者学习的银行账户登录系统实例
Aug 08 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 Python
python中in在list和dict中查找效率的对比分析
May 04 Python
Pandas之ReIndex重新索引的实现
Jun 25 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
Jan 04 Python
python numpy矩阵信息说明,shape,size,dtype
May 22 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 Python
python中字符串String及其常见操作指南(方法、函数)
Apr 06 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调用c接口无错版介绍
2014/03/11 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
PHP中header函数的用法及其注意事项详解
2016/06/13 PHP
jQuery 入门讲解1
2009/04/15 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
angular.element方法汇总
2015/01/07 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
vuex实现简易计数器
2016/10/27 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[02:36]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma 选手采访
2021/03/11 DOTA
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
详解Python利用random生成一个列表内的随机数
2019/08/21 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
酒店前台辞职书
2015/02/26 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书