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字符串连接方式汇总
Aug 21 Python
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
python pygame模块编写飞机大战
Nov 20 Python
python Django的web开发实例(入门)
Jul 31 Python
使用python绘制二维图形示例
Nov 22 Python
Python计算公交发车时间的完整代码
Feb 12 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
PYcharm 激活方法(推荐)
Mar 23 Python
python库skimage给灰度图像染色的方法示例
Apr 27 Python
python3代码中实现加法重载的实例
Dec 03 Python
python脚本框架webpy模板控制结构
Nov 20 Python
python超详细实现完整学生成绩管理系统
Mar 17 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生成唯一订单号的方法汇总
2015/04/16 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
Javascript 遍历对象中的子对象
2009/07/03 Javascript
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
浅谈React高阶组件
2018/03/28 Javascript
jQuery length 和 size()区别总结
2018/04/26 jQuery
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
Python3处理HTTP请求的实例
2018/05/10 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
python实现决策树分类
2018/08/30 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
员工考核管理制度
2014/02/02 职场文书
网络工程师职业规划
2014/02/10 职场文书
秋游活动策划方案
2014/02/16 职场文书
2014年大学生就业规划书
2014/04/04 职场文书
班长竞选演讲稿
2014/04/24 职场文书
青春奉献演讲稿
2014/05/08 职场文书
实习生工作证明范本
2014/09/14 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
增值税发票丢失证明
2015/06/19 职场文书
Go 语言结构实例分析
2021/07/04 Golang
php实例化对象的实例方法
2021/11/17 PHP