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实现从脚本里运行scrapy的方法
Apr 07 Python
pygame学习笔记(1):矩形、圆型画图实例
Apr 15 Python
Python数据类型详解(一)字符串
May 08 Python
python监控linux内存并写入mongodb(推荐)
Sep 11 Python
Django unittest 设置跳过某些case的方法
Dec 26 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 Python
python如何实现单链表的反转
Feb 10 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
Apr 24 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
Jun 23 Python
Django 如何实现文件上传下载
Apr 08 Python
Python实现学生管理系统(面向对象版)
Jun 24 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
Yii2 assets清除缓存的方法
2016/05/16 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
axios拦截设置和错误处理方法
2018/03/05 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
2019/10/28 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
Vue是怎么渲染template内的标签内容的
2020/06/05 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
Python OS模块常用函数说明
2015/05/23 Python
python中对数据进行各种排序的方法
2019/07/02 Python
python实现两个文件夹的同步
2019/08/29 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
Django自带用户认证系统使用方法解析
2020/11/12 Python
大学生职业生涯规划书范文
2014/01/14 职场文书
酒店营销策划方案
2014/02/07 职场文书
团代会主持词
2014/04/02 职场文书
大学活动总结范文
2014/04/29 职场文书
科技活动总结范文
2015/05/11 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书