#python #matplotlib #divider #subplot
#python #matplotlib #разделитель #подзаголовок
Вопрос:
Я просматривал пример «scatter hist» в галерее Matplotlib.
На данный момент подпанели x / y находятся вверху и справа соответственно, т. Е.:
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)
было ?!), либо я предполагаю, что divider настроил сетку на панели window, и мне нужно сообщить append_axes, какая ячейка содержит основные оси.
Спасибо,
Алекс
Комментарии:
1. Я знаю, что в приведенном выше случае это сработает, если я просто переключу вызовы divider.append_axes («top» …) и divider.append_axes («right» …), но как насчет того, когда я хочу поместить подзаголовки «снизу» и «слева», когда каким бы способом я ни вызывал append_axes , подзаголовки все еще прикреплены к неправильным осям ?!?
2. Я попробовал это, но не нашел решения. похоже на ошибку.
Ответ №1:
Порядок, в котором вы создаете 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)
Это точно воняет, как жук.