matplotlib: при использовании append_axes, как я могу указать оси, к которым я хочу добавить подпанель? - PullRequest
10 голосов
/ 05 ноября 2011

Я смотрел на пример "история рассеяния" в галерее Matplotlib.

В настоящий момент подзаговоры х / у находятся сверху и справа соответственно, т. Е .:

divider = make_axes_locatable(axScatter)
axHistx = divider.append_axes("top", 1.2, pad=0.1, sharex=axScatter)
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter)

Однако, если я изменю расположение подзаговоров на:

divider = make_axes_locatable(axScatter)
axHistx = divider.append_axes("bottom", 1.2, pad=0.1, sharex=axScatter)
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter)

т.е.. переместите субпанель x внизу, затем append_axes добавляет субплот y справа от субплана x, а не справа от диаграммы рассеяния. (Я бы загрузил изображение, но у меня пока недостаточно высокой репутации, чтобы публиковать изображения ... grrr)!

Как я могу сообщить append_axes, что я хочу добавить подпоток y справа от "главных осей", содержащих график рассеяния? Я предполагаю, что мне нужно либо где-то снова указать объект axScatter (хотя я подумал, что это то, для чего divider = make_axes_locatable(axScatter) был ?!), или я предполагаю, что разделитель настроил сетку на панели окна, и мне нужно сказать, append_axes, в какой ячейке находятся главные оси.

Спасибо

Alex

1 Ответ

2 голосов
/ 06 июля 2012

Порядок, в котором вы создаете axHisty и axHistx, кажется, имеет значение.Если вы переключите порядок последних двух операторов, то вы можете получить желаемый эффект:

divider = make_axes_locatable(axScatter)
axHisty = divider.append_axes("right", 1.2, pad=0.1,  sharey=axScatter)
axHistx = divider.append_axes("bottom", 1.2, pad=0.1, sharex=axScatter)

Это точно воняет как ошибка.

...