Matplotlib is hiring a Research Software Engineering Fellow! See discourse for details. Apply by January 3, 2020
matplotlib.widgets
¶设计用于任何GUI后端的小部件。所有这些小部件都需要预先定义 matplotlib.axes.Axes
实例并将其作为第一个参数传递。Matplotlib在布局上不会太聪明——你必须弄清楚你想要你的轴有多宽和多高来容纳你的小部件。
matplotlib.widgets.
AxesWidget
(ax)[源代码]¶连接到单个 Axes
.
为了确保小部件保持响应而不是垃圾收集,用户应该维护对对象的引用。
这是必要的,因为回调注册表只维护对这些函数的弱引用,这些函数是小部件的成员函数。如果没有对小部件对象的引用,它可能被垃圾收集,这将断开回调。
属性:
Axes
: 轴线FigureCanvasBase
子类 : 图ConvasBase子类matplotlib.widgets.
Button
(ax, label, image=None, color='0.85', hovercolor='0.95')[源代码]¶基类:matplotlib.widgets.AxesWidget
GUI中性按钮。
要使按钮保持响应,必须保留对它的引用。呼叫 on_clicked()
连接到按钮。
属性: |
|
---|
参数: |
|
---|
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
参数: |
|
---|
matplotlib.widgets.
Cursor
(ax, horizOn=True, vertOn=True, useblit=False, **lineprops)[源代码]¶基类:matplotlib.widgets.AxesWidget
横贯轴并随指针移动的水平线和垂直线。您可以使用以下属性分别关闭hline或vline:
- 视界
- 控制水平线的可见性
- 弗顿
- 控制水平线的可见性
以及光标本身的可见性 看得见的 属性。
要使光标保持响应,必须保留对它的引用。
将光标添加到 ax . 如果 useblit=True
,使用后端相关的Blitting功能进行更快的更新。 直线道具 是行属性的字典。
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_1
和 pos_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 不限制可以使用哪个按钮。
互动式 将绘制一组句柄,并允许您在绘制完小部件后与之交互。
state_modifier_keys 是影响小部件行为的键盘修改器。
默认值为:dict(move='',clear='escape',square='shift',center='ctrl')
键盘修改器,其中:“move”:移动现有形状。清除:清除当前形状。方形:使形状变为方形。中心:使初始点成为形状的中心。“正方形”和“中心”可以组合。
matplotlib.widgets.
Lasso
(ax, xy, callback=None, useblit=True)[源代码]¶基类:matplotlib.widgets.AxesWidget
任意形状的选择曲线。
所选路径可与 contains_point()
从图像中选择数据点。
不像 LassoSelector
,必须用起始点初始化 xy
和 Lasso
事件在释放时被销毁。
参数: |
|
---|
matplotlib.widgets.
LassoSelector
(ax, onselect=None, useblit=True, lineprops=None, button=None)[源代码]¶基类:matplotlib.widgets._SelectorWidget
任意形状的选择曲线。
要使选择器保持响应,必须保留对它的引用。
所选路径可与 contains_point
从图像中选择数据点。
与…对比 Lasso
, LassoSelector
使用类似于 RectangleSelector
和 SpanSelector
,并将继续与轴交互,直到断开。
示例用法:
ax = subplot(111)
ax.plot(x,y)
def onselect(verts):
print(verts)
lasso = LassoSelector(ax, onselect)
参数: |
|
---|
matplotlib.widgets.
LockDraw
[源代码]¶基类:object
有些小部件(如光标)绘制到画布上,但在所有情况下都不需要这样做,例如工具栏处于“缩放到矩形”模式并绘制矩形时。为了避免这种情况,小部件可以通过 canvas.widgetlock(widget)
在画布上绘制之前,这将阻止其他小部件同时执行此操作(如果它们也尝试先获取锁)。
matplotlib.widgets.
MultiCursor
(canvas, axes, useblit=True, horizOn=False, vertOn=True, **lineprops)[源代码]¶提供多个轴之间共享的垂直(默认)和/或水平线光标。
要使光标保持响应,必须保留对它的引用。
示例用法:
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()
matplotlib.widgets.
PolygonSelector
(ax, onselect, useblit=False, lineprops=None, markerprops=None, vertex_select_radius=15)[源代码]¶基类:matplotlib.widgets._SelectorWidget
选择轴的多边形区域。
用鼠标单击放置顶点,然后通过完成多边形(单击第一个顶点)进行选择。握住 ctrl 键并单击并拖动顶点以重新定位 ctrl 如果多边形已完成,则不需要键)。握住 转移 键并单击并拖动轴中的任意位置以移动所有顶点。按 esc 键开始新多边形。
要使选择器保持响应,必须保留对它的引用。
参数: |
|
---|
实例
verts
¶获取多边形顶点。
返回: |
|
---|
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
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_1
和 pos_2
是包含x和y坐标的长度为2的数组。
如果 米恩斯潘 不是 None 然后事件小于