Spec-Zone.ru › Matplotlib 1.5

widgets

matplotlib.widgets

GUI-нейтральные виджеты

Виджеты, разработанные для работы с любыми графическими интерфейсами. Все эти виджеты требуют предварительного определения экземпляра matplotlib.axes.Axes и передачи его в качестве первого аргумента. matplotlib не пытается быть слишком умным в отношении макета – вам нужно будет самостоятельно определить желаемую ширину и высоту объекта Axes для размещения вашего виджета.

class matplotlib.widgets.AxesWidget(ax)

Базовые классы: matplotlib.widgets.Widget

Виджет, связанный с единственным объектом Axes.

Для обеспечения отзывчивости виджета и предотвращения его сборки мусора, пользователю необходимо сохранить ссылку на объект.

Это необходимо, потому что регистр обратных вызовов сохраняет только слабые ссылки на функции, которые являются методами виджета. Если нет ссылок на объект виджета, он может быть собран мусором, что отключит обратные вызовы.

Атрибуты:

ax
: Axes
Родительский объект Axes для виджета
canvas
: FigureCanvasBase подкласс
Родительский объект FigureCanvas для виджета.
active
: bool
Если False, виджет не реагирует на события.
connect_event(event, callback)

Подключение обратного вызова к событию.

Это следует использовать вместо figure.canvas.mpl_connect, так как эта функция сохраняет идентификаторы обратных вызовов для последующего удаления.

disconnect_events()

Отключение всех событий, созданных этим виджетом.

class matplotlib.widgets.Button(ax, label, image=None, color='0.85', hovercolor='0.95')

Базовые классы: matplotlib.widgets.AxesWidget

Нейтральная кнопка GUI.

Для сохранения отзывчивости кнопки необходимо сохранить ссылку на неё.

Доступны следующие атрибуты:

ax
Объект matplotlib.axes.Axes, в который отрисовывается кнопка.
label
Экземпляр matplotlib.text.Text.
color
Цвет кнопки, когда она не активна.
hovercolor
Цвет кнопки при наведении курсора.

Вызовите on_clicked() для подключения к кнопке

Параметры:

ax : matplotlib.axes.Axes

Экземпляр matplotlib.axes.Axes, в который будет размещена кнопка.

label : str

Текст кнопки. Принимает строку.

image : массив, mpl изображение, Pillow Image

Изображение для размещения на кнопке, если оно не None. Может быть любым допустимым аргументом для imshow (массив NumPy, экземпляр изображения matplotlib или изображение Pillow).

color : цвет

Цвет кнопки, когда она не активирована

hovercolor : цвет

Цвет кнопки, когда курсор наведён на неё

disconnect(cid)

удаление наблюдателя с идентификатором подключения cid

on_clicked(func)

При нажатии кнопки вызовите эту функцию func со событием.

Возвращается идентификатор подключения. Он может быть использован для отключения кнопки от её обратного вызова.

class matplotlib.widgets.CheckButtons(ax, labels, actives)

Базовые классы: matplotlib.widgets.AxesWidget

Нейтральная кнопка выбора (переключатель).

Для сохранения отзывчивости кнопок выбора необходимо сохранить ссылку на этот объект.

Доступны следующие атрибуты:

ax
Объект matplotlib.axes.Axes, в котором расположены кнопки.
labels
Список экземпляров matplotlib.text.Text
lines
Список кортежей (line1, line2) для x-ов в чекбоксах. Эти линии существуют для каждой кнопки, но имеют set_visible(False) когда её чекбокс не отмечен.
rectangles
Список экземпляров matplotlib.patches.Rectangle

Подключиться к CheckButtons можно с помощью метода on_clicked()

Добавление чекбоксов в объект matplotlib.axes.Axes ax

labels
Список меток (строки) длиной len(buttons)
actives
Список булевых значений длиной len(buttons), указывающих, активна
ли кнопка
disconnect(cid)

удаление наблюдателя с идентификатором подключения cid

on_clicked(func)

При нажатии кнопки вызовите func с меткой кнопки

Возвращается идентификатор подключения, который может быть использован для отключения.

set_active(index)

Прямое (де)активирование чекбокса по индексу.

index – индекс в исходном списке меток,
с которым был создан этот объект. ValueError, если index некорректен.

Обратные вызовы будут вызваны, если eventson имеет значение True.

class matplotlib.widgets.Cursor(ax, horizOn=True, vertOn=True, useblit=False, **lineprops)

Базовые классы: matplotlib.widgets.AxesWidget

Горизонтальная и вертикальная линия, охватывающая область Axes и перемещающаяся вместе с указателем. Вы можете отключить горизонтальную (hline) или вертикальную (vline) линию соответственно, используя следующие атрибуты:

horizOn
Управляет видимость горизонтальной линии
vertOn
Управляет видимость вертикальной линии

и видимость курсора с помощью атрибута visible.

Для сохранения отзывчивости курсора, необходимо сохранить ссылку на него.

Добавление курсора в ax. Если useblit=True, используйте функции блинтинга, зависящие от графического интерфейса, для более быстрых обновлений (только GTKAgg на данный момент). lineprops – словарь свойств линии.

(Исходный код, png, hires.png, pdf)

../_images/cursor.png
clear(event)

очистить курсор

onmove(event)

при движении мыши отображать курсор, если он видим

END_OF_DOCUMENT_MARKER
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

Выбор эллиптической области на осях.

Для сохранения отзывчивости курсора необходимо сохранить ссылку на него.

Пример использования:

from matplotlib.widgets import  EllipseSelector
from pylab import *

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 = arange(100)/(99.0)
y = sin(x)
fig = figure
ax = subplot(111)
ax.plot(x,y)

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

Создайте селектор в ax. Когда выбор сделан, очистите область и вызовите onselect со значениями:

onselect(pos_1, pos_2)

и очистите нарисованный прямоугольник/линию. pos_1 и pos_2 — массивы длины 2, содержащие координаты x и y.

Если minspanx не равно None, то события с размером меньше minspanx по оси x игнорируются (то же самое для оси y).

Прямоугольник рисуется с параметрами rectprops; по умолчанию:

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

Линия рисуется с параметрами lineprops; по умолчанию:

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

Используйте drawtype, чтобы мышь рисовала линию, прямоугольник или ничего между нажатием и текущим положением, установив

drawtype = 'line', drawtype='box' или drawtype = 'none'.

spancoords может быть 'data' или 'pixels'. Если 'data', minspanx и minspany будут интерпретированы в тех же координатах, что и оси x и y. Если 'pixels', они будут в пикселях.

button — список целых чисел, указывающих, какие кнопки мыши должны использоваться для выбора прямоугольника. Также можно указать одно целое число, если требуется только одна кнопка. По умолчанию — None, что не ограничивает использование кнопок.

Примечание:
1 = левая кнопка мыши 2 = средняя кнопка мыши (колесо прокрутки) 3 = правая кнопка мыши

interactive нарисует набор элементов управления и позволит вам взаимодействовать с виджетом после его отрисовки.

state_modifier_keys — это модификаторы клавиш, которые влияют на поведение виджета.

По умолчанию: dict(move=’ ‘, clear=’escape’, square=’shift’, center=’ctrl’)

Модификаторы клавиш, которые: ‘move’: Перемещение существующей формы. ‘clear’: Очистка текущей формы. ‘square’: Делает форму квадратной. ‘center’: Делает начальную точку центром формы. ‘square’ и ‘center’ могут использоваться вместе.

draw_shape(extents)
class matplotlib.widgets.Lasso(ax, xy, callback=None, useblit=True)

Базовые классы: matplotlib.widgets.AxesWidget

Кривая выбора произвольной формы.

Выбранная траектория может использоваться совместно с contains_point() для выбора точек данных из изображения.

В отличие от LassoSelector, это необходимо инициализировать с начальной точкой xy, и события Lasso удаляются при отпускании.

Параметры:

ax
: Axes
Родительские оси для виджета.
xy
: массив
Координаты начала лассо.
callback
: функция
Когда лассо отпускается, вызывается функция callback и ей передаются вершины выбранной траектории.
onmove(event)
onrelease(event)
class matplotlib.widgets.LassoSelector(ax, onselect=None, useblit=True, lineprops=None, button=None)

Базовые классы: matplotlib.widgets._SelectorWidget

Кривая выбора произвольной формы.

Для сохранения отзывчивости селектора необходимо сохранить ссылку на него.

Выбранная траектория может использоваться совместно с contains_point() для выбора точек данных из изображения.

В отличие от Lasso, LassoSelector написан с интерфейсом, похожим на RectangleSelector и SpanSelector, и будет продолжать взаимодействовать с осями до разъединения.

Параметры:

ax
: Axes
Родительские оси для виджета.
onselect
: функция
Когда лассо отпускается, вызывается функция onselect и ей передаются вершины выбранной траектории.

Пример использования:

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

   def onselect(verts):
       print(verts)
   lasso = LassoSelector(ax, onselect)

*button* is a list of integers indicating which mouse buttons should
   be used for rectangle selection.  You can also specify a single
   integer if only a single button is desired.  Default is *None*,
   which does not limit which button can be used.

   Note, typically:
    1 = left mouse button
    2 = center mouse button (scroll wheel)
    3 = right mouse button
onpress(event)
onrelease(event)
class matplotlib.widgets.LockDraw

Базовые классы: object

Некоторые виджеты, такие как курсор, рисуют на холсте, и это нежелательно во всех случаях, например, когда панель инструментов находится в режиме масштабирования по прямоугольнику и рисует прямоугольник. Модульный «замок» позволяет захватить замок и предотвратить рисование других виджетов. Используйте matplotlib.widgets.lock(someobj) для предотвращения рисования других виджетов во время взаимодействия с холстом.

available(o)

Рисование доступно для o

isowner(o)

Возвращает True, если o владеет этим замком

locked()

Возвращает True, если замок в настоящее время удерживается владельцем

release(o)

Освободить замок

class matplotlib.widgets.MultiCursor(canvas, axes, useblit=True, horizOn=False, vertOn=True, **lineprops)

Базовые классы: matplotlib.widgets.Widget

Предоставляет вертикальный (по умолчанию) и/или горизонтальный курсор, общий для нескольких осей.

Для сохранения отзывчивости курсора необходимо сохранить ссылку на него.

Пример использования:

from matplotlib.widgets import MultiCursor
from pylab import figure, show, np

t = np.arange(0.0, 2.0, 0.01)
s1 = np.sin(2*np.pi*t)
s2 = np.sin(4*np.pi*t)
fig = figure()
ax1 = fig.add_subplot(211)
ax1.plot(t, s1)

ax2 = fig.add_subplot(212, sharex=ax1)
ax2.plot(t, s2)

multi = MultiCursor(fig.canvas, (ax1, ax2), color='r', lw=1,
                    horizOn=False, vertOn=True)
show()
clear(event)

очистить курсор

connect()

подключить события

disconnect()

отключить события

onmove(event)
class matplotlib.widgets.RadioButtons(ax, labels, active=0, activecolor='blue')

Базовые классы: matplotlib.widgets.AxesWidget

Нейтральная для GUI кнопка радио.

Для сохранения отзывчивости кнопок необходимо сохранить ссылку на этот объект.

Доступны следующие атрибуты:

ax
Экземпляр matplotlib.axes.Axes, в котором находятся кнопки
activecolor
Цвет кнопки при нажатии
labels
Список экземпляров matplotlib.text.Text
circles
Список экземпляров matplotlib.patches.Circle
value_selected
Строка с текущим выбранным значением

Подключитесь к RadioButtons с помощью метода on_clicked()

Добавьте кнопки радио на экземпляр matplotlib.axes.Axes ax

labels
Список меток длиной len(buttons) в виде строк
active
Индекс в списке меток для активной кнопки
activecolor
Цвет кнопки при нажатии
disconnect(cid)

Удалить наблюдателя с id подключения cid

on_clicked(func)

При нажатии на кнопку вызовите func с меткой кнопки

Возвращается идентификатор подключения, который можно использовать для отключения

set_active(index)

Вызвать активную кнопку радио.

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)

Bases: matplotlib.widgets._SelectorWidget

Выделить прямоугольную область осей.

Чтобы курсор оставался отзывчивым, необходимо сохранить ссылку на него.

Пример использования:

from matplotlib.widgets import  RectangleSelector
from pylab import *

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 = arange(100)/(99.0)
y = sin(x)
fig = figure
ax = subplot(111)
ax.plot(x,y)

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

Создать селектор в ax. Когда выделение выполнено, очистить размах и вызвать onselect с:

onselect(pos_1, pos_2)

и очистить нарисованный прямоугольник/линию. pos_1 и pos_2 — массивы длиной 2, содержащие координаты x и y.

Если minspanx не равно None, события с размером меньше minspanx по оси x игнорируются (то же самое для оси y).

Прямоугольник рисуется с помощью rectprops; по умолчанию:

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

Линия рисуется с помощью lineprops; по умолчанию:

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

Используйте drawtype, если вы хотите, чтобы мышь рисовала линию, прямоугольник или ничего между щелчком и фактическим положением, установив

drawtype = 'line', drawtype='box' или drawtype = 'none'.

spancoords может принимать значения ‘data’ или ‘pixels’. Если ‘data’, minspanx и minspanx будут интерпретироваться в тех же координатах, что и оси x и y. Если ‘pixels’, они будут в пикселях.

button — список целых чисел, указывающих, какие кнопки мыши должны использоваться для выделения прямоугольника. Также можно указать одно целое число, если требуется только одна кнопка. По умолчанию — None, что не ограничивает использование кнопок.

Замечание:
1 = левая кнопка мыши 2 = центральная кнопка мыши (колесико) 3 = правая кнопка мыши

interactive позволит нарисовать набор маркеров и позволит взаимодействовать с виджетом после его отрисовки.

state_modifier_keys — это модификаторы клавиатуры, которые влияют на поведение виджета.

По умолчанию: dict(move=’ пробел’, clear=’Esc’, square=’Shift’, center=’Ctrl’)

Модификаторы клавиатуры:

  • ‘move’: Перемещение существующей фигуры.
  • ‘clear’: Очистка текущей фигуры.
  • ‘square’: Преобразование фигуры в квадрат.
  • ‘center’: Инициализация точки в центре фигуры.
  • ‘square’ и ‘center’ могут быть объединены.
center

Центр прямоугольника

corners

Углы прямоугольника, начиная с левого нижнего и двигаясь по часовой стрелке.

draw_shape(extents)
edge_centers

Середины сторон прямоугольника, начиная с левой стороны и двигаясь по часовой стрелке.

extents

Возвращает (xmin, xmax, ymin, ymax).

geometry
class matplotlib.widgets.Slider(ax, label, valmin, valmax, valinit=0.5, valfmt='%1.2f', closedmin=True, closedmax=True, slidermin=None, slidermax=None, dragging=True, **kwargs)

Bases: matplotlib.widgets.AxesWidget

Ползунок, представляющий числовой диапазон с плавающей запятой.

Для сохранения отзывчивости ползунка необходимо сохранить ссылку на него.

Определены следующие атрибуты:

ax : экземпляр matplotlib.axes.Axes ползунка

val : текущее значение ползунка

vline
: экземпляр matplotlib.lines.Line2D
представляющий начальное значение ползунка
poly
: экземпляр matplotlib.patches.Polygon
представляющий рукоятку ползунка

valfmt : строка формата для форматирования текста ползунка

label
: экземпляр matplotlib.text.Text
метка ползунка

closedmin : ползунок закрыт слева

closedmax : ползунок закрыт справа

slidermin
: другой ползунок - если не None, этот ползунок должен быть
больше, чем slidermin
slidermax
: другой ползунок - если не None, этот ползунок должен быть
меньше, чем slidermax

dragging : разрешить перетаскивание ползунка мышью

Вызовите on_changed(), чтобы подключиться к событию ползунка

Создайте ползунок от valmin до valmax на осях ax.

Дополнительные параметры передаются в self.poly — это matplotlib.patches.Rectangle, который рисует рукоятку ползунка. См. документацию matplotlib.patches.Rectangle для допустимых имен свойств (например, facecolor, edgecolor, alpha, ...).

class matplotlib.widgets.SpanSelector(ax, onselect, direction, minspan=None, useblit=False, rectprops=None, onmove_callback=None, span_stays=False, button=None)

Bases: matplotlib.widgets._SelectorWidget

Выбрать диапазон минимальных/максимальных значений осей x или y для matplotlib Axes.

Для сохранения отзывчивости селектора необходимо сохранить ссылку на него.

Пример использования:

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

def onselect(vmin, vmax):
    print(vmin, vmax)
span = SpanSelector(ax, onselect, 'horizontal')

onmove_callback — необязательный обработчик, который вызывается при перемещении мыши в пределах диапазона выделения

Создать селектор диапазона на осях ax. При выделении, очистить диапазон и вызвать onselect с:

onselect(vmin, vmax)

и очистить диапазон.

direction должно быть ‘горизонталь’ или ‘вертикаль’

Если minspan не равно None, игнорировать события меньше, чем minspan

Прямоугольник диапазона рисуется с помощью rectprops; по умолчанию:

rectprops = dict(facecolor='red', alpha=0.5)

Установите атрибут visible в False, если вы хотите отключить функциональность селектора диапазона

Если span_stays равно True, диапазон остаётся видимым после создания валидного выделения.

button — список целых чисел, указывающих, какие кнопки мыши должны использоваться для выделения. Также можно указать одно целое число, если требуется только одна кнопка. По умолчанию — None, что не ограничивает использование кнопок.

Замечание:
1 = левая кнопка мыши 2 = центральная кнопка мыши (колесико) 3 = правая кнопка мыши
ignore(event)

возвращает True, если event должен быть проигнорирован

new_axes(ax)
class matplotlib.widgets.SubplotTool(targetfig, toolfig)

Bases: matplotlib.widgets.Widget

Инструмент для настройки параметров subplot для matplotlib.figure.Figure.

targetfig
Экземпляр фигуры для настройки.
toolfig
Экземпляр фигуры для встраивания инструмента subplot. Если None, будет создана фигура по умолчанию. Если вы используете это из GUI
funcbottom(val)
funchspace(val)
funcleft(val)
funcright(val)
functop(val)
funcwspace(val)
class matplotlib.widgets.ToolHandles(ax, x, y, marker='o', marker_props=None, useblit=True)

Базы: object

Управляющие элементы для инструментов холста.

Параметры:

ax : matplotlib.axes.Axes

Оси Matplotlib, где отображаются управляющие элементы инструментов.

x, y : одномерные массивы

Координаты управляющих элементов.

marker : str

Форма маркера, используемого для отображения элемента управления. См. matplotlib.pyplot.plot.

marker_props : dict

Дополнительные свойства маркера. См. matplotlib.lines.Line2D.

closest(x, y)

Возвращает индекс и пиксельное расстояние до ближайшего индекса.

set_animated(val)
set_data(pts, y=None)

Устанавливает x и y координаты элементов управления

set_visible(val)
x
y
class matplotlib.widgets.Widget

Базы: object

Абстрактный базовый класс для нейтральных виджетов GUI

active

Является ли виджет активным?

drawon = True
eventson = True
get_active()

Получить, активен ли виджет.

ignore(event)

Возвращает True, если событие должно быть проигнорировано.

Этот метод (или его версия) должен вызываться в начале любого обработчика событий.

set_active(active)

Установить, активен ли виджет.

© 2012–2016 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/1.5.3/api/widgets_api.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API