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中操作文件之seek()方法的使用教程
May 24 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
详解Python命令行解析工具Argparse
Apr 20 Python
Python函数的周期性执行实现方法
Aug 13 Python
python 实现倒排索引的方法
Dec 25 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
Nov 11 Python
python脚本后台执行方式
Dec 21 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
Python实现爬取并分析电商评论
Jun 19 Python
详解Python函数print用法
Jun 18 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输入流php://input介绍
2012/09/18 PHP
php 强制下载文件实现代码
2013/10/28 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
2017/04/15 PHP
PHP连接sftp并下载文件的方法教程
2018/08/26 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
javascript OFFICE控件测试代码
2009/12/08 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
jquery选择器使用详解
2014/04/08 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
解决Vue watch里调用方法的坑
2020/11/07 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
python处理二进制数据的方法
2015/06/03 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
python妙用之编码的转换详解
2017/04/21 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
python实现程序重启和系统重启方式
2020/04/16 Python
python和js交互调用的方法
2020/06/23 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
计算机专业大学生的自我评价
2013/11/14 职场文书
教师开学感言
2014/02/14 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
ant design charts 获取后端接口数据展示
2022/05/25 Javascript