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 pdb调试方法分享
Jan 21 Python
python实现ipsec开权限实例
Nov 11 Python
Python爬虫模拟登录带验证码网站
Jan 22 Python
Python set常用操作函数集锦
Nov 15 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 Python
Python smtplib实现发送邮件功能
May 22 Python
解决pycharm工程启动卡住没反应的问题
Jan 19 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
python 含子图的gif生成时内存溢出的方法
Jul 07 Python
python生成并处理uuid的实现方式
Mar 03 Python
keras 简单 lstm实例(基于one-hot编码)
Jul 02 Python
python else语句在循环中的运用详解
Jul 06 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开发文件系统实例讲解
2006/10/09 PHP
php生成excel文件的简单方法
2014/02/08 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
2014/09/29 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
JavaScript中读取和保存文件实例
2014/05/08 Javascript
基于jQuery实现交互体验社会化分享代码附源码下载
2016/01/04 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
Vue.js实现简单动态数据处理
2017/02/13 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
ReactRouter的实现方法
2021/01/25 Javascript
python登陆asp网站页面的实现代码
2015/01/14 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
jupyter 导入csv文件方式
2020/04/21 Python
浅析Python 序列化与反序列化
2020/08/05 Python
python3中编码获取网页的实例方法
2020/11/16 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
中专毕业生的自我鉴定
2013/12/01 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
国庆阅兵观后感
2015/06/15 职场文书
高中运动会广播稿
2015/08/19 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
Nginx源码编译安装过程记录
2021/11/17 Servers
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers