widgets
matplotlib.widgets
GUI-нейтральные виджеты
Виджеты, разработанные для работы с любыми графическими интерфейсами. Все эти виджеты требуют предварительного определения экземпляра matplotlib.axes.Axes и передачи его в качестве первого аргумента. matplotlib не пытается быть слишком умным в отношении макета – вам нужно будет самостоятельно определить желаемую ширину и высоту объекта Axes для размещения вашего виджета.
-
class matplotlib.widgets.AxesWidget(ax) -
Базовые классы:
matplotlib.widgets.WidgetВиджет, связанный с единственным объектом
Axes.Для обеспечения отзывчивости виджета и предотвращения его сборки мусора, пользователю необходимо сохранить ссылку на объект.
Это необходимо, потому что регистр обратных вызовов сохраняет только слабые ссылки на функции, которые являются методами виджета. Если нет ссылок на объект виджета, он может быть собран мусором, что отключит обратные вызовы.
Атрибуты:
- ax :
- Родительский объект Axes для виджета
- canvas :
- Родительский объект FigureCanvas для виджета.
- active : bool
- Если False, виджет не реагирует на события.
AxesFigureCanvasBaseподкласс-
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.Axesax- 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)
-
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Выбор эллиптической области на осях.
Для сохранения отзывчивости курсора необходимо сохранить ссылку на него.
Пример использования:
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 :
- Родительские оси для виджета.
- xy : массив
- Координаты начала лассо.
- callback : функция
- Когда лассо отпускается, вызывается функция
callbackи ей передаются вершины выбранной траектории.
Axes-
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 :
- Родительские оси для виджета.
- onselect : функция
- Когда лассо отпускается, вызывается функция
onselectи ей передаются вершины выбранной траектории.
AxesПример использования:
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.Axesax- 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 : экземпляр
- представляющий начальное значение ползунка
- poly : экземпляр
- представляющий рукоятку ползунка
matplotlib.lines.Line2Dmatplotlib.patches.Polygonvalfmt : строка формата для форматирования текста ползунка
- label : экземпляр
- метка ползунка
matplotlib.text.Textclosedmin : ползунок закрыт слева
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