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 相关文章推荐
详解Django框架中的视图级缓存
Jul 23 Python
Django原生sql也能使用Paginator分页的示例代码
Nov 15 Python
Python编程之gui程序实现简单文件浏览器代码
Dec 08 Python
Python Socket编程之多线程聊天室
Jul 28 Python
Python logging模块用法示例
Aug 28 Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 Python
flask框架jinja2模板与模板继承实例分析
Aug 01 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 Python
Python列表切片常用操作实例解析
Mar 10 Python
python如何调用java类
Jul 05 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 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查看当前变量类型的方法
2015/07/31 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
繁简字转换功能
2006/07/19 Javascript
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
jquery提升性能最佳实践小结
2010/12/06 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
js中用window.open()打开多个窗口的name问题
2014/03/13 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
Node.js Sequelize如何实现数据库的读写分离
2016/10/23 Javascript
jQuery与JavaScript节点创建方法的对比
2016/11/18 Javascript
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
Python实现备份文件实例
2014/09/16 Python
python访问类中docstring注释的实现方法
2015/05/04 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
Django如何实现防止XSS攻击
2020/10/13 Python
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
暑假实习求职信范文
2013/09/22 职场文书
酒店副总岗位职责
2013/12/24 职场文书
运动会广播稿30字
2014/01/21 职场文书
《金钱的魔力》教学反思
2014/02/24 职场文书
让世界充满爱演讲稿
2014/05/24 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
天河观后感
2015/06/11 职场文书
golang 实现菜单树的生成方式
2021/04/28 Golang
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python