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调用cmd命令行制作刷博器
Jan 13 Python
python入门之语句(if语句、while语句、for语句)
Jan 19 Python
仅用500行Python代码实现一个英文解析器的教程
Apr 02 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
python 3.6.2 安装配置方法图文教程
Sep 18 Python
python中pika模块问题的深入探究
Oct 13 Python
Python进阶:生成器 懒人版本的迭代器详解
Jun 29 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 Python
TensorFlow索引与切片的实现方法
Nov 20 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
django使用多个数据库的方法实例
Mar 04 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
xml+php动态载入与分页
2006/10/09 PHP
解析PHP生成静态html文件的三种方法
2013/06/18 PHP
一段实用的php验证码函数
2016/05/19 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
js动态为代码着色显示行号
2013/05/29 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
原生js实现图片轮播特效
2015/12/18 Javascript
JQuery EasyUI的使用
2016/02/24 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
实现两个文本框同时输入的实例
2017/09/25 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
原生js实现html手机端城市列表索引选择城市
2020/06/24 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
python基础教程之while循环
2019/08/14 Python
python网络编程之五子棋游戏
2020/05/14 Python
python属于解释语言吗
2020/06/11 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
如何利用Python 进行边缘检测
2020/10/14 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
毕业生个人求职信范例分享
2013/12/17 职场文书
房地产营销策划方案
2014/02/08 职场文书
争先创优公开承诺书
2014/08/30 职场文书
人民币使用说明书
2019/04/17 职场文书