Python使用matplotlib实现交换式图形显示功能示例


Posted in Python onSeptember 06, 2019

本文实例讲述了Python使用matplotlib实现交换式图形显示功能。分享给大家供大家参考,具体如下:

一 代码

from random import choice
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import RadioButtons,Button
t = np.arange(0.0,2.0,0.01)
s0 = np.sin(2*np.pi*t)
s1 = np.sin(4*np.pi*t)
s2 = np.sin(8*np.pi*t)
fig, ax = plt.subplots()
l,= ax.plot(t, s0, lw=2, color='red')
plt.subplots_adjust(left=0.3)
#定义允许的几种频率,并创建单选钮组件
#其中[0.05, 0.7, 0.15, 0.15]表示组件在窗口上的归一化位置
axcolor ='lightgoldenrodyellow'
rax = plt.axes([0.05,0.7,0.15,0.15], axisbg=axcolor)
radio =RadioButtons(rax,('2 Hz','4 Hz','8 Hz'))
hzdict ={'2 Hz': s0,'4 Hz': s1,'8 Hz': s2}
def hzfunc(label):
ydata = hzdict[label]
l.set_ydata(ydata)
plt.draw()
radio.on_clicked(hzfunc)
#定义允许的几种颜色,并创建单选钮组件
rax = plt.axes([0.05,0.4,0.15,0.15], axisbg=axcolor)
colors =('red','blue','green')
radio2 =RadioButtons(rax, colors)
def colorfunc(label):
l.set_color(label)
plt.draw()
radio2.on_clicked(colorfunc)
#定义允许的几种线型,并创建单选钮组件
rax = plt.axes([0.05,0.1,0.15,0.15], axisbg=axcolor)
styles =('-','--','-.','steps',':')
radio3 =RadioButtons(rax, styles)
def stylefunc(label):
l.set_linestyle(label)
plt.draw()
radio3.on_clicked(stylefunc)
#定义按钮单击事件处理函数,并在窗口上创建按钮
def randomFig(event):
#随机选择一个频率,同时设置单选钮的选中项
hz = choice(tuple(hzdict.keys()))
hzLabels =[label.get_text()for label in radio.labels]
radio.set_active(hzLabels.index(hz))
l.set_ydata(hzdict[hz])
#随机选择一个颜色,同时设置单选钮的选中项
c = choice(colors)
radio2.set_active(colors.index(c))
l.set_color(c)
#随机选择一个线型,同时设置单选钮的选中项
style = choice(styles)
radio3.set_active(styles.index(style))
l.set_linestyle(style)
#根据设置的属性绘制图形
plt.draw()
axRnd = plt.axes([0.5,0.015,0.2,0.045])
buttonRnd =Button(axRnd,'Random Figure')
buttonRnd.on_clicked(randomFig)
#显示图形
plt.show()

二 运行结果

Python使用matplotlib实现交换式图形显示功能示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
Jan 22 Python
Python程序员鲜为人知但你应该知道的17个问题
Jun 04 Python
Python二叉搜索树与双向链表转换实现方法
Apr 29 Python
python 对象和json互相转换方法
Mar 22 Python
python实现随机调用一个浏览器打开网页
Apr 21 Python
对Python3.6 IDLE常用快捷键介绍
Jul 16 Python
python实现QQ批量登录功能
Jun 19 Python
Django处理Ajax发送的Get请求代码详解
Jul 29 Python
python 的numpy库中的mean()函数用法介绍
Mar 03 Python
Python实现代码块儿折叠
Apr 15 Python
Python scrapy爬取小说代码案例详解
Jul 09 Python
Python实现壁纸下载与轮换
Oct 19 Python
python自动发微信监控报警
Sep 06 #Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 #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
You might like
curl和libcurl的区别简介
2015/07/01 PHP
详解PHP队列的实现
2019/03/14 PHP
javascript 日期常用的方法
2009/11/11 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
JS常用正则表达式总结
2013/11/12 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
ES6的新特性概览
2016/03/10 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
js删除指定位置超链接中含有百度与360的标题
2021/01/06 Javascript
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
Python语言的变量认识及操作方法
2018/02/11 Python
对python3 urllib包与http包的使用详解
2018/05/10 Python
Python实现将Excel转换成xml的方法示例
2018/08/25 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
django 类视图的使用方法详解
2019/07/24 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
Python如何定义有默认参数的函数
2020/08/10 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
酒店总经理岗位职责
2014/03/17 职场文书
公司委托书范本
2014/04/04 职场文书
金融事务专业求职信
2014/04/25 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
python实现A*寻路算法
2021/06/13 Python
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android