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 相关文章推荐
python strip()函数 介绍
May 24 Python
Python PyQt5标准对话框用法示例
Aug 23 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
如何用python写一个简单的词法分析器
Dec 18 Python
基于python和flask实现http接口过程解析
Jun 15 Python
python爬虫scrapy图书分类实例讲解
Nov 23 Python
Python list去重且保持原顺序不变的方法
Apr 03 Python
Python中X[:,0]和X[:,1]的用法
May 10 Python
python实现自定义日志的具体方法
May 28 Python
Pytorch反向传播中的细节-计算梯度时的默认累加操作
Jun 05 Python
Python+Appium自动化测试的实战
Jun 30 Python
Python MNIST手写体识别详解与试练
Nov 07 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
php与paypal整合方法
2010/11/28 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
PHP简单获取多个checkbox值的方法
2016/06/13 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
打开超链需要“确认”对话框的方法
2007/03/08 Javascript
JavaScript 对象模型 执行模型
2009/12/06 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
JQuery中使用on方法绑定hover事件实例
2014/12/09 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
纯javascript版日历控件
2016/11/24 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
2020/01/16 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
python如何实现excel数据添加到mongodb
2015/07/30 Python
Python数据结构之翻转链表
2017/02/25 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
pandas取出重复数据的方法
2019/07/04 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
python制作朋友圈九宫格图片
2019/11/03 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
教你如何一步一步用Canvas写一个贪吃蛇
2018/10/22 HTML / CSS
会计工作心得体会
2014/01/13 职场文书
北京大学自荐信范文
2014/01/28 职场文书
物业消防安全责任书
2014/07/23 职场文书
安全生产工作汇报
2014/10/28 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
通知的写法
2015/04/23 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
导游词之河北邯郸
2019/09/12 职场文书
JavaScript组合继承详解
2021/11/07 Javascript
海弦WR-800F
2022/04/05 无线电