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升级提示Tkinter模块找不到的解决方法
Aug 22 Python
python服务器端收发请求的实现代码
Sep 29 Python
在Python中关于中文编码问题的处理建议
Apr 08 Python
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 Python
python定向爬虫校园论坛帖子信息
Jul 23 Python
python字符串循环左移
Mar 08 Python
简单瞅瞅Python vars()内置函数的实现
Sep 27 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
Sep 29 Python
MoviePy简介及Python视频剪辑自动化
Dec 18 Python
基于Python编写一个监控CPU的应用系统
Jun 25 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 Socket技术
2013/08/02 PHP
Destoon模板制作简明教程
2014/06/20 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
accesskey 提交
2006/06/26 Javascript
Javascript之文件操作
2007/03/07 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
2014/06/05 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
2014/09/04 Javascript
多种JQuery循环滚动文字图片效果代码
2020/06/23 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
nodejs同步调用获取mysql数据时遇到的大坑
2019/03/02 NodeJs
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python ZipFile模块详解
2013/11/01 Python
Django框架视图层URL映射与反向解析实例分析
2019/07/29 Python
Python实现密码薄文件读写操作
2019/12/16 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
心理健康教育心得体会
2013/12/29 职场文书
校本教研工作制度
2014/01/22 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
2015年派出所民警工作总结
2015/04/24 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS