Matplotlib is hiring a Research Software Engineering Fellow! See discourse for details. Apply by January 3, 2020

Version 3.1.1
matplotlib
Fork me on GitHub

目录

Related Topics

小部件

matplotlib.widgets

GUI中性小部件

设计用于任何GUI后端的小部件。所有这些小部件都需要预先定义 matplotlib.axes.Axes 实例并将其作为第一个参数传递。Matplotlib在布局上不会太聪明——你必须弄清楚你想要你的轴有多宽和多高来容纳你的小部件。

class matplotlib.widgets.AxesWidget(ax)[源代码]

基类:matplotlib.widgets.Widget

连接到单个 Axes .

为了确保小部件保持响应而不是垃圾收集,用户应该维护对对象的引用。

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

属性:

ax : Axes : 轴线
小部件的父轴
帆布 : FigureCanvasBase 子类 : 图ConvasBase子类
小部件的父图形画布。
积极的 : 布尔
如果为false,则小部件不响应事件。
connect_event(event, callback)[源代码]

使用事件连接回调。

应该用这个代替 figure.canvas.mpl_connect 因为这个函数存储回调ID以便以后清理。

disconnect_events()[源代码]

断开此小部件创建的所有事件。

class matplotlib.widgets.Button(ax, label, image=None, color='0.85', hovercolor='0.95')[源代码]

基类:matplotlib.widgets.AxesWidget

GUI中性按钮。

要使按钮保持响应,必须保留对它的引用。呼叫 on_clicked() 连接到按钮。

属性:
ax :

这个 matplotlib.axes.Axes 按钮呈现为。

标签:

A matplotlib.text.Text 实例。

颜色:

不悬停时按钮的颜色。

HoviCuo:

悬停时按钮的颜色。

参数:
ax : matplotlib.axes.Axes

这个 matplotlib.axes.Axes 实例按钮将被放入。

标签 : STR

按钮文本。接受字符串。

形象 : 阵列,MPL图像,枕头图像

要放置在按钮中的图像(如果不是) None . 可以是imshow的任何合法参数(numpy数组、matplotlib图像实例或枕头图像)。

颜色 : 颜色

按钮未激活时的颜色

霍弗颜色 : 颜色

鼠标悬停时按钮的颜色

disconnect(cid)[源代码]

删除带有连接ID的观察者 cid

on_clicked(func)[源代码]

单击按钮时,调用此 func 附带事件。

返回连接ID。它可以用来断开按钮与回调的连接。

class matplotlib.widgets.CheckButtons(ax, labels, actives=None)[源代码]

基类:matplotlib.widgets.AxesWidget

一组与图形用户界面无关的检查按钮。

要使复选按钮保持响应,必须保留对此对象的引用。

以下属性已公开

ax
这个 matplotlib.axes.Axes 按钮所在的实例
标签
名单 matplotlib.text.Text 实例
线
复选框中X的(第1行,第2行)元组列表。这些行适用于每个框,但 set_visible(False) 当其框未选中时。
矩形
名单 matplotlib.patches.Rectangle 实例

用连接到复选按钮 on_clicked() 方法

将复选按钮添加到 matplotlib.axes.Axes 实例 ax

参数:
axAxes : 轴线

小部件的父轴。

标签 : 表 [str]

复选按钮的标签。

活性剂 : 表 [bool] 可选

按钮的初始检查状态。列表的长度必须与 标签 . 如果未给定,则取消选中所有按钮。

disconnect(cid)[源代码]

删除带有连接ID的观察者 cid

get_status()[源代码]

返回所有检查按钮的状态(真/假)的元组

on_clicked(func)[源代码]

单击按钮后,调用 func 带按钮标签

返回可用于断开连接的连接ID

set_active(index)[源代码]

通过索引直接(取消)激活复选按钮。

指数 是原始标签列表的索引
这个对象是用它构造的。在以下情况下引发ValueError 指数 无效。

如果 eventson 是True。

class matplotlib.widgets.Cursor(ax, horizOn=True, vertOn=True, useblit=False, **lineprops)[源代码]

基类:matplotlib.widgets.AxesWidget

横贯轴并随指针移动的水平线和垂直线。您可以使用以下属性分别关闭hline或vline:

视界
控制水平线的可见性
弗顿
控制水平线的可见性

以及光标本身的可见性 看得见的 属性。

要使光标保持响应,必须保留对它的引用。

将光标添加到 ax . 如果 useblit=True ,使用后端相关的Blitting功能进行更快的更新。 直线道具 是行属性的字典。

clear(event)[源代码]

清除光标

onmove(event)[源代码]

鼠标移动时,如果可见,则绘制光标

class matplotlib.widgets.EllipseSelector(ax, onselect, drawtype='box', minspanx=None, minspany=None, useblit=False, lineprops=None, rectprops=None, spancoords='data', button=None, maxdist=10, marker_props=None, interactive=False, state_modifier_keys=None)[源代码]

基类:matplotlib.widgets.RectangleSelector

选择轴的椭圆区域。

要使光标保持响应,必须保留对它的引用。

示例用法:

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

def onselect(eclick, erelease):
    "eclick and erelease are matplotlib events at press and release."
    print('startposition: (%f, %f)' % (eclick.xdata, eclick.ydata))
    print('endposition  : (%f, %f)' % (erelease.xdata, erelease.ydata))
    print('used button  : ', eclick.button)

def toggle_selector(event):
    print(' Key pressed.')
    if event.key in ['Q', 'q'] and toggle_selector.ES.active:
        print('EllipseSelector deactivated.')
        toggle_selector.RS.set_active(False)
    if event.key in ['A', 'a'] and not toggle_selector.ES.active:
        print('EllipseSelector activated.')
        toggle_selector.ES.set_active(True)

x = np.arange(100.) / 99
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)

toggle_selector.ES = EllipseSelector(ax, onselect, drawtype='line')
fig.canvas.connect('key_press_event', toggle_selector)
plt.show()

在中创建选择器 ax . 进行选择后,清除范围并调用OnSelect,方法为:

onselect(pos_1, pos_2)

并清除绘制的框/线。这个 pos_1pos_2 是包含x和y坐标的长度为2的数组。

如果 米恩斯潘 不是 None 然后事件小于 米恩斯潘 X方向被忽略(Y方向相同)。

矩形是用 矩形支柱 默认值:

rectprops = dict(facecolor='red', edgecolor = 'black',
                 alpha=0.2, fill=True)

这条线是用 直线道具 默认值:

lineprops = dict(color='black', linestyle='-',
                 linewidth = 2, alpha=0.5)

使用 拖曳式 如果希望鼠标通过设置在单击和实际位置之间绘制一条线、一个框或不绘制任何内容

drawtype = 'line'drawtype='box'drawtype = 'none' . 绘制一条线会在矩形abcd中从顶点A到顶点C形成一条线。

斯潘科兹 是“数据”或“像素”之一。如果是“数据”, 米恩斯潘米恩斯潘 将在与X和Y轴相同的坐标中解释。如果是“像素”,则以像素为单位。

按钮 是一个整数列表,指示应使用哪些鼠标按钮进行矩形选择。如果只需要一个按钮,也可以指定一个整数。默认是 None 不限制可以使用哪个按钮。

注:通常:
1=鼠标左键2=鼠标中键(滚轮)3=鼠标右键

互动式 将绘制一组句柄,并允许您在绘制完小部件后与之交互。

state_modifier_keys 是影响小部件行为的键盘修改器。

默认值为:dict(move='',clear='escape',square='shift',center='ctrl')

键盘修改器,其中:“move”:移动现有形状。清除:清除当前形状。方形:使形状变为方形。中心:使初始点成为形状的中心。“正方形”和“中心”可以组合。

draw_shape(extents)[源代码]
class matplotlib.widgets.Lasso(ax, xy, callback=None, useblit=True)[源代码]

基类:matplotlib.widgets.AxesWidget

任意形状的选择曲线。

所选路径可与 contains_point() 从图像中选择数据点。

不像 LassoSelector ,必须用起始点初始化 xyLasso 事件在释放时被销毁。

参数:
axAxes : 轴线

小部件的父轴。

xy : (浮标,浮标)

套索起点的坐标。

回调 : 可赎回的

每当套索被释放时, callback 函数被调用并传递选定路径的顶点。

onmove(event)[源代码]
onrelease(event)[源代码]
class matplotlib.widgets.LassoSelector(ax, onselect=None, useblit=True, lineprops=None, button=None)[源代码]

基类:matplotlib.widgets._SelectorWidget

任意形状的选择曲线。

要使选择器保持响应,必须保留对它的引用。

所选路径可与 contains_point 从图像中选择数据点。

与…对比 LassoLassoSelector 使用类似于 RectangleSelectorSpanSelector ,并将继续与轴交互,直到断开。

示例用法:

ax = subplot(111)
ax.plot(x,y)

def onselect(verts):
    print(verts)
lasso = LassoSelector(ax, onselect)
参数:
ax : Axes : 轴线

小部件的父轴。

单选择 : 功能

每当套索被释放时, 单选择 函数被调用并传递选定路径的顶点。

按钮 : 表 [Int] 可选

整数列表,指示应使用哪些鼠标按钮进行矩形选择。如果只需要一个按钮,也可以指定一个整数。默认是 None 不限制可以使用哪个按钮。

注:通常:

  • 1=鼠标左键
  • 2=鼠标中键(滚轮)
  • 3=鼠标右键
onpress(event)[源代码]
onrelease(event)[源代码]
class matplotlib.widgets.LockDraw[源代码]

基类:object

有些小部件(如光标)绘制到画布上,但在所有情况下都不需要这样做,例如工具栏处于“缩放到矩形”模式并绘制矩形时。为了避免这种情况,小部件可以通过 canvas.widgetlock(widget) 在画布上绘制之前,这将阻止其他小部件同时执行此操作(如果它们也尝试先获取锁)。

available(o)[源代码]

返回图纸是否可用于 o .

isowner(o)[源代码]

返回是否 o 拥有这把锁。

locked()[源代码]

返回锁当前是否由所有者持有。

release(o)[源代码]

将锁从 o .

class matplotlib.widgets.MultiCursor(canvas, axes, useblit=True, horizOn=False, vertOn=True, **lineprops)[源代码]

基类:matplotlib.widgets.Widget

提供多个轴之间共享的垂直(默认)和/或水平线光标。

要使光标保持响应,必须保留对它的引用。

示例用法:

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

fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True)
t = np.arange(0.0, 2.0, 0.01)
ax1.plot(t, np.sin(2*np.pi*t))
ax2.plot(t, np.sin(4*np.pi*t))

multi = MultiCursor(fig.canvas, (ax1, ax2), color='r', lw=1,
                    horizOn=False, vertOn=True)
plt.show()
clear(event)[源代码]

清除光标

connect()[源代码]

连接事件

disconnect()[源代码]

断开连接事件

onmove(event)[源代码]
class matplotlib.widgets.PolygonSelector(ax, onselect, useblit=False, lineprops=None, markerprops=None, vertex_select_radius=15)[源代码]

基类:matplotlib.widgets._SelectorWidget

选择轴的多边形区域。

用鼠标单击放置顶点,然后通过完成多边形(单击第一个顶点)进行选择。握住 ctrl 键并单击并拖动顶点以重新定位 ctrl 如果多边形已完成,则不需要键)。握住 转移 键并单击并拖动轴中的任意位置以移动所有顶点。按 esc 键开始新多边形。

要使选择器保持响应,必须保留对它的引用。

参数:
ax : Axes : 轴线

小部件的父轴。

单选择 : 功能

当多边形在完成后完成或修改时, onselect 函数被调用并作为 (xdata, ydata) 元组。

有用的 : 可选的布尔
直线道具 : 可选的

多边形各边的线是用下列属性绘制的: lineprops . 默认值为 dict(color='k', linestyle='-', linewidth=2, alpha=0.5) .

马尾螺桨 : 可选的

多边形顶点的标记用以下属性绘制: markerprops . 默认值为 dict(marker='o', markersize=7, mec='k', mfc='k', alpha=0.5) .

vertex_select_radius : 可选浮动

如果鼠标单击在范围内,则会选择顶点(以完成多边形或移动顶点)。 vertex_select_radius 顶点的像素。默认半径为15像素。

实例

多边形选择器演示

onmove(event)[源代码]

光标移动事件处理程序和验证程序

verts

获取多边形顶点。

返回:
list

多边形顶点列表 (xdata, ydata) 元组。

class matplotlib.widgets.RadioButtons(ax, labels, active=0, activecolor='blue')[源代码]

基类:matplotlib.widgets.AxesWidget

GUI中性单选按钮。

要使按钮保持响应,必须保留对此对象的引用。

将显示以下属性:

ax
这个 matplotlib.axes.Axes 按钮所在的实例
活性染料
单击时按钮的颜色
标签
列表 matplotlib.text.Text 实例
圈子
列表 matplotlib.patches.Circle 实例
value_selected
列出所选当前值的字符串

用连接到单选按钮 on_clicked() 方法

将单选按钮添加到 matplotlib.axes.Axes 实例 ax

标签
作为字符串的标签的长度(按钮)列表
积极的
活动按钮的索引到标签
活性染料
单击时按钮的颜色
disconnect(cid)[源代码]

删除带有连接ID的观察者 cid

on_clicked(func)[源代码]

单击按钮后,调用 func 带按钮标签

返回可用于断开连接的连接ID

set_active(index)[源代码]

触发激活哪个单选按钮。

指数 是原始标签列表的索引
这个对象是用它构造的。如果索引无效,则引发ValueError。

如果 eventson 是True。

class matplotlib.widgets.RectangleSelector(ax, onselect, drawtype='box', minspanx=None, minspany=None, useblit=False, lineprops=None, rectprops=None, spancoords='data', button=None, maxdist=10, marker_props=None, interactive=False, state_modifier_keys=None)[源代码]

基类:matplotlib.widgets._SelectorWidget

选择轴的矩形区域。

要使光标保持响应,必须保留对它的引用。

示例用法:

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

def onselect(eclick, erelease):
    "eclick and erelease are matplotlib events at press and release."
    print('startposition: (%f, %f)' % (eclick.xdata, eclick.ydata))
    print('endposition  : (%f, %f)' % (erelease.xdata, erelease.ydata))
    print('used button  : ', eclick.button)

def toggle_selector(event):
    print('Key pressed.')
    if event.key in ['Q', 'q'] and toggle_selector.RS.active:
        print('RectangleSelector deactivated.')
        toggle_selector.RS.set_active(False)
    if event.key in ['A', 'a'] and not toggle_selector.RS.active:
        print('RectangleSelector activated.')
        toggle_selector.RS.set_active(True)

x = np.arange(100.) / 99
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)

toggle_selector.RS = RectangleSelector(ax, onselect, drawtype='line')
fig.canvas.connect('key_press_event', toggle_selector)
plt.show()

在中创建选择器 ax . 进行选择后,清除范围并调用OnSelect,方法为:

onselect(pos_1, pos_2)

并清除绘制的框/线。这个 pos_1pos_2 是包含x和y坐标的长度为2的数组。

如果 米恩斯潘 不是 None 然后事件小于