Нарисовать границу вокруг подзаголовков в matplotlib

Кто-нибудь знает, как нарисовать границу вокруг отдельного подзаголовка внутри фигуры в matplotlib? Я использую pyplot.

например:

import matplotlib.pyplot as plt
f = plt.figure()
ax1 = f.add_subplot(211)
ax2 = f.add_subplot(212)
# ax1.set_edgecolor('black')

.., но объекты Axes не имеют "edgecolor", и я не могу найти способ изложить график с уровня фигуры.

Я на самом деле обертываю код mpl и добавляю wx UI с элементами управления, которые я хотел бы иметь в зависимости от выбранного подзадача. то есть пользователь нажимает на подзаголовок в фигуре canvas - подзаголовок "выбран" (имеет контур, нарисованный вокруг него, в идеале пилообразный). Обновления GUI для представления элементов управления для изменения этого конкретного подзаголовка.

Ответ 1

Вы по сути хотите рисовать вне осей, правильно?

Я адаптировал это из здесь. Это нужно было бы очистить, поскольку я использовал некоторые жестко закодированные "fudge-факторы" там.

#!/usr/bin/env python
from pylab import *

def f(t):
    s1 = cos(2*pi*t)
    e1 = exp(-t)
    return multiply(s1,e1)

t1 = arange(0.0, 5.0, 0.1)
t2 = arange(0.0, 5.0, 0.02)
t3 = arange(0.0, 2.0, 0.01)

figure(figsize=(4, 4))
sub1 = subplot(211)
l = plot(t1, f(t1), 'bo', t2, f(t2), 'k--', markerfacecolor='green')
grid(True)
title('A tale of 2 subplots')
ylabel('Damped oscillation')

## I ADDED THIS
autoAxis = sub1.axis()
rec = Rectangle((autoAxis[0]-0.7,autoAxis[2]-0.2),(autoAxis[1]-autoAxis[0])+1,(autoAxis[3]-autoAxis[2])+0.4,fill=False,lw=2)
rec = sub1.add_patch(rec)
rec.set_clip_on(False)

subplot(212)
plot(t3, cos(2*pi*t3), 'r.')
grid(True)
xlabel('time (s)')
ylabel('Undamped')

savefig('test.png')

Выдает:

enter image description here