Python库matplotlib之三

news2024/11/20 15:22:55

Python库matplotlib之三

  • 小部件(widget)
    • 小部件的基类
      • connect_event
      • disconnect_events()
    • Button
      • disconnect
      • on_clicked
      • 应用实列
    • CheckButtons
      • 构造器
      • APIs
      • 应用实列

小部件(widget)

小部件(widget)可与任何GUI后端一起工作。所有这些小部件都要求预定义一个Axes实例,并将其作为第一个参数传递。 Matplotlib不会试图布局这些小部件,所以,您必须自己决定Axes的宽度和高度,以便容纳这些小部件。

小部件的基类

词法:class matplotlib.widgets.AxesWidget(ax)

该小部件连接到单个Axes。

为了保证小部件保持响应,并且防止被垃圾收集,用户应该维护对该对象的引用。

这是必要的,因为回调登记仅维护函数的弱引用,这些函数是小部件的成员函数。如果没有对小部件对象的引用,它可能会被垃圾收集,这将断开回调。

connect_event

词法:connect_event(event, callback)
将回调函数与事件连接起来。
这应该用来代替figure.canvas.mpl_connect,因为该函数存储回调ID以供以后清理。

disconnect_events()

词法:disconnect_events()
断开此小部件创建的所有事件。

Button

Button的属性

  • ax,是一个Axes,Button将在其中显示。
  • label,一个文本实例。
  • color,按钮未悬停时的颜色。
  • hovercolor,悬停时按钮的颜色。

词法:matplotlib.widgets.Button(ax, label, image=None, color=‘0.85’, hovercolor=‘0.95’, *, useblit=True)

为了使按钮保持响应,您必须保留对其的引用。调用on_clicked 连接到按钮

参数说明

  • ax,变量类型是Axes。按钮将被放置到的 Axes 实例。
  • label,变量类型是字符串。按钮文本。
  • image,变量类型是array-like或者PIL Image。如果不是None,要放置在按钮中的图像。参数直接转发给imshow。
  • color,变量类型是color。按钮未激活时的颜色。
  • hovercolor,变量类型是color。当鼠标悬停在按钮上时按钮的颜色。
  • useblit,变量类型是bool,默认值为True
    如果后端支持,请使用位块传送,以加快绘制速度。

disconnect

词法:disconnect(cid)
删除连接ID为cid的回调函数。

on_clicked

词法:on_clicked(func)
将回调函数 func 连接到按钮单击事件。返回一个连接id,这个id可用于断开连接回调。

应用实列

freqs = np.arange(0.2, 2, 0.3)

fig, ax = plt.subplots()
ax.set_ylabel('Frequency', color='#00ff00')
ax.set_xlabel('Time', color='#0000ff')
ax.set_facecolor('#eafff5')
plt.subplots_adjust(bottom=0.2)
t = np.arange(0.0, 10.0, 0.01)
s = np.sin(2*np.pi*freqs[0]*t)
l, = plt.plot(t, s, lw=2)

class Index:
    ind = 0

    def reset(self, event):
        self.ind = 0
        i = self.ind % len(freqs)
        ydata = np.sin(2*np.pi*freqs[i]*t)
        l.set_ydata(ydata)
        l.set_color("#0000FF")
        plt.draw()

    def next(self, event):
        self.ind += 1
        i = self.ind % len(freqs)
        ydata = np.sin(2*np.pi*freqs[i]*t)
        l.set_ydata(ydata)
        l.set_color("#00FF00")
        plt.draw()

if __name__ == "__main__":
    callback = Index()
    axnext = plt.axes([0.81, 0.05, 0.1, 0.075])
    ax_reset = plt.axes([0.70, 0.05, 0.1, 0.075])
    bnext = Button(axnext, 'Next', color='#00FF00', hovercolor='#00FFFF')
    bnext.on_clicked(callback.next)
    b_reset = Button(ax_reset, 'Reset', color='#FF0000', hovercolor='#00FFFF')
    b_reset.on_clicked(callback.reset)

    plt.show()

在这里插入图片描述

CheckButtons

CheckButtons的属性

  • ax,是一个Axes,CheckButtons将在其中显示。
  • labels,是一个Text表。CheckButton的文本标签对象。

构造器

matplotlib.widgets.CheckButtons(ax, labels, actives=None, *, useblit=True, label_props=None, frame_props=None, check_props=None)

这个构造器构造一组GUI的检查按钮。为了始终保持检查按钮的响应,必须保留对此对象的引用。
使用 on_clicked 方法连接到 CheckButton。

参数说明

  • ax,这个参数类型是Axes。Button将在这个Axes中显示。
  • labels,这个参数类型是一个字符串表,检查按钮的标签。
  • actives,这个参数类型是一个bool值表, 这个参数是可选的。指示CheckButton的初始状态。该列表的长度必须与标签列表的长度相同。如果未给出,则所有CheckButton状态都将是uncheck。
  • useblit,这个参数类型bool,默认值为True。如果后端支持,使用位块传送,以加快绘制速度。
  • label_props,这个参数类型是dict,是可选。用于标签的Text属性字典。
  • frame_props,这个参数类型是dict,是可选。scatter的Collection属性的字典,用于复选按钮框架。
  • check_props,这个参数类型是dict,是可选。scatter的Collection属性的字典,用于检查按钮检查。

APIs

函数名功能
clear()Uncheck all checkboxes
disconnect(cid)删除连接ID为cid的观察者
get_checked_labels()返回用户当前检查的标签列表
get_status()返回所有检查按钮的状态(True/False)列表
on_clicked(func)将回调函数 func 连接到按钮单击事件。
set_active(index, state=None)通过索引修改复选按钮的状态。如果 eventon 为 True,则会触发回调。
set_check_props(props)设置检查按钮检查的属性。
set_frame_props(props)设置复选按钮框架的属性。
set_label_props(props)设置文本标签的属性。

应用实列

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import CheckButtons

freqs = np.arange(0.2, 2, 0.3)
global w_check
fig, ax = plt.subplots()
ax.set_ylabel('Frequency', color='#00ff00')
ax.set_xlabel('Time', color='#0000ff')
ax.set_facecolor('#eafff5')
plt.subplots_adjust(left=0.3, bottom=0.1, right=0.9, top=0.9, wspace=0.2, hspace=0.2)

plt.subplots_adjust(bottom=0.25)
t = np.arange(0.0, 10.0, 0.01)
s = np.sin(2*np.pi*freqs[0]*t)
l, = plt.plot(t, s, lw=2)

def on_clicked(label):
    global w_check
    index = labels.index(label)
    l_status = w_check.get_status()
    s = ''
    for x in l_status:
        if x == True:
            s += 'FF'
        else:
            s += '00'
    color = '#'+s
    l.set_color(color)
    plt.draw()

if __name__ == "__main__":
    global w_check
    ax = plt.axes([0.01, 0.5, 0.13, 0.4])
    labels = ["Red", "Blue", "Green"]
    check_status = [False, True, False]
    w_check = CheckButtons(ax, labels, check_status)
    w_check.on_clicked(on_clicked)

    plt.show()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2177147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ASP.NET Core 创建使用异步队列

示例图 在 ASP.NET Core 应用程序中,执行耗时任务而不阻塞线程的一种有效方法是使用异步队列。在本文中,我们将探讨如何使用 .NET Core 和 C# 创建队列结构以及如何使用此队列异步执行操作。 步骤 1:创建 EmailMessage 类 首先&#xff0c…

工作繁杂,如何防止工作遗漏遗忘?

不知道大家工作中是否有这样的情况: 1.工作过程中工作任务经常被打断,打乱正常的工作节奏; 2.因为不方便统一记录工作及工作要求,经常忘记给领导反馈工作进展; 3.因为工作繁多,经常会出现工作遗漏遗忘的…

ass字幕文件怎么导入视频mp4?ass字幕怎么编辑?视频加字幕超简单!

ass字幕文件怎么导入视频mp4?ass字幕怎么编辑?在视频制作和观看过程中,添加字幕是一项常见的需求,特别是对于外语视频或需要辅助阅读的场景。ASS(Advanced SubStation Alpha)字幕文件是一种常用的字幕格式&…

Redission · 可重入锁(Reentrant Lock)

前言 Redisson是一个强大的分布式Java对象和服务库,专为简化在分布式环境中的Java开发而设计。通过Redisson,开发人员可以轻松地在分布式系统中共享数据、实现分布式锁、创建分布式对象,并处理各种分布式场景的挑战。 Redisson的设计灵感来…

华为OD机试 - 静态扫描(Java 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(E卷D卷A卷B卷C卷)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加…

八LAMP搭建

# LAMP ## 一、知识回顾 ### FTP samba nfs 特点 - 借用Linux用户作为映射用户,进行权限管理 - 软件本身还有管理控制权限 #### 客户端连接到服务器后进行读写执行等操作 ,必须同时具有: - 软件许可的权限 vsftpd: anon upload enableYES - 文件…

PC端微信小程序如何调试?

向往常一样运行开微信小程序开发者工具 如果只弹出pc端小程序,没有出现调试的界面:点击胶囊按钮的三个…选择重新进入小程序 即可依次展开相应的功能调试,改完代码没反应再刷新看看,再没反应就再次重新点击编译并自动调试。

fish-speech语音大模型本地部署

文章目录 fish-speech模型下载编译部署 小结 fish-speech模型 先说下fish-speech模型吧,可以先看下官网。如下: 这就是一个模型,可以根据一个样例声音,构建出自己需要的声音。其实,这个还是有很多用途的;…

Tpflow:提升开发效率的PHP工作流引擎

Tpflow:提升开发效率的PHP工作流引擎 今天要跟大家介绍的是一款能够显著提升开发效率的工具——Tpflow!它是一个专门为PHP开发者设计的工作流引擎,致力于帮助你减少80%以上的代码量,轻松管理复杂的业务流程。让我们一起来看看它的…

win10安装Java闪退

问题:win10 在安装Java8时,电脑没有反应,出现闪退的现象。 1、打开设置找到“时间和语言” 2、找到“中文(简体,中国)” 3、点击“选项” 4、删除“百度输入法” 5、问题解决,再次安装Java

史上最细快速排序讲解(hoare,挖坑,双指针, 非递归)

文章目录 前言一、递归方法快排1. 递归主要思想2. 递归代码实现 二、hoare方法实现找基准值1. hoare思想2. hoare代码实现 三、挖坑方法实现找基准值1. 挖坑思想2. 挖坑代码实现 四、双指针方法实现找基准值1. lomuto前后指针法思想2. lomuto前后指针法代码实现 五、非递归方法…

第十四周:机器学习笔记

第十四周周报 摘要Abstract一、机器学习——Transformer(下)1. Transformer decoder1.1 autoregressive decoder(自回归解码器)1.2 Transformer decoder结构图1.3 non-autoregressive decoder(非自回归解码器&#xff…

24年最新 idea 插件开发教程,面试鸭插件技术实现!

大家好,我是松柏。今天给大家分享下这个JetBrains插件开发教程。 学习过程中可以参考开源项目:https://github.com/yuyuanweb/mianshiya-plugin 首先贴一下官方文档:https://plugins.jetbrains.com/docs/intellij/welcome.html 虽然这个文档…

【最新发布】Win10 22H2 19045.4957 正式版免费下载!

今日系统之家小编给大家分享2024年9月第二次更新的Windows10 22H2正式版系统,该版本系统基于最新Windows10 22H2 19045.4957 64位专业版进行离线制作,安全无毒,修复了使用某些环绕声技术时某些媒体的播放可能会停止等多项问题,系统…

基于C#开发的(CS界面)图书管理系统

图书管理系统项目开发说明书 项目简介 项目背景(选择这个项目的原因、前景,面向的用户,优势); 根据温州理工学院需要希望能够充分利用现代科技来提高图书管理的效率,在原有的办公系统基础上进行扩展&…

1. 如何在服务器上租GPU跑实验 (以AutoDL为例) - 深度学习·科研实践·从0到1

目录 前言 1. 在AutoDL上注册账号 2. 在算力市场选择GPU 3. 创建实例 4. 控制台-容器实例界面(核心) 4.1 无卡模式(常用) 5. 帮助文档 前言 好记性不如烂笔头,本专栏将详细记录下本人学习深度学习工程实践&…

Python通过Sqlalchemy框架实现增删改查

目录 简介 什么是SQLAlchemy? SQLAlchemy可以分为两个部分:Core和ORM。 一、首先安装sqlalchemy 二、在配置文件中添加数据库连接信息,我这里是Mysql 三、 创建数据库连接类,我这里是动态读取数据库的表字段,自动…

神器!GPT让大学生也能轻松实现架构师级的系统设计图

文章目录 零、前言一、实现架构师级的系统设计图操作指导系统背景功能细化 画用例图画系统架构设计图划分html页面画实体类图画服务层类图画时序图画数据库ER图 二、感受 零、前言 粉丝做毕业设计时,不会画架构图,问虚竹哥会不会画~ 虽然这…

基于微信小程序的空巢老人健康管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…