Matplotlib: получить и установить положение осей

в matlab легко получить и установить положение существующих осей на рисунке:

  pos = get(gca(), 'position')
  set(gca(), 'position', pos)

Как это сделать в Matplotlib?

мне это нужно по двум связанным причинам:

Это конкретные проблемы, которые я пытаюсь решить:

  • У меня есть столбец подзаголовков, где у некоторых есть цветные панели, а у некоторых нет, и они не одинаковой ширины, т. е. оси X не выравниваются. В colorbar крадет пространство от осей. Это также происходит в matlab, и там я бы использовал вышеуказанный трюк, чтобы сделать все оси одинаково широкими, скопировав ширину с осей с цветовой полосой на те, которые без.

  • добавьте пространство между отдельными подзаголовками, сжимая оси. Функция adjust_subplots () настраивает все подзаголовки одинаково.

1 ответов


установка положения осей аналогична в Matplotlib. Вы можете использовать get_position и set_position методы топоры.

import matplotlib.pyplot as plt

ax = plt.subplot(111)
pos1 = ax.get_position() # get the original position 
pos2 = [pos1.x0 + 0.3, pos1.y0 + 0.3,  pos1.width / 2.0, pos1.height / 2.0] 
ax.set_position(pos2) # set a new position

вы также можете взглянуть на GridSpec Если вы еще не.