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简单连接MongoDB数据库的方法
Mar 15 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
python实现远程通过网络邮件控制计算机重启或关机
Feb 22 Python
Python OpenCV读取png图像转成jpg图像存储的方法
Oct 28 Python
python 定时器,轮询定时器的实例
Feb 20 Python
Python和Sublime整合过程图示
Dec 25 Python
Python 去除字符串中指定字符串
Mar 05 Python
keras 解决加载lstm+crf模型出错的问题
Jun 10 Python
Python实现爬取网页中动态加载的数据
Aug 17 Python
如何利用python之wxpy模块玩转微信
Aug 17 Python
Python3接口性能测试实例代码
Jun 20 Python
讲解Python实例练习逆序输出字符串
May 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购物车实现代码
2011/10/10 PHP
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
php把大写命名转换成下划线分割命名
2015/04/27 PHP
php时间计算相关问题小结
2016/05/09 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
如何实现echarts markline标签名显示自己想要的
2020/07/20 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
TensorFlow的权值更新方法
2018/06/14 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
python简单验证码识别的实现方法
2019/05/10 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
python爬虫快速响应服务器的做法
2020/11/24 Python
一名女生的自荐信
2013/12/08 职场文书
留学经费担保书
2014/05/12 职场文书