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随机生成一个6位的验证码代码分享
Mar 24 Python
用Python的Django框架编写从Google Adsense中获得报表的应用
Apr 17 Python
python实现的DES加密算法和3DES加密算法实例
Jun 03 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
Python实现的各种常见分布算法示例
Dec 13 Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 Python
Django 1.10以上版本 url 配置注意事项详解
Aug 05 Python
python图片二值化提高识别率代码实例
Aug 24 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
Sep 29 Python
python中setuptools的作用是什么
Jun 19 Python
matplotlib之属性组合包(cycler)的使用
Feb 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
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
thinkphp缓存技术详解
2014/12/09 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
javascript下数值型比较难点说明
2010/06/07 Javascript
jQuery 源码分析笔记(4) Ready函数
2011/06/02 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
详解如何运行vue项目
2019/04/15 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
Python基础之函数用法实例详解
2014/09/10 Python
Python获取任意xml节点值的方法
2015/05/05 Python
python 生成器协程运算实例
2017/09/04 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
python如何查看安装了的模块
2020/06/23 Python
numpy实现RNN原理实现
2021/03/02 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
试用期转正鉴定评语
2014/01/27 职场文书
售后服务质量承诺书
2015/04/29 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
pytorch Dropout过拟合的操作
2021/05/27 Python
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL