Как создать вертикально сложенные оси с одинаковой шириной и только одной из них с одинаковым соотношением сторон в matplotlib? - PullRequest
0 голосов
/ 07 апреля 2020

Я хочу создать фигуру с двумя вертикально сложенными осями. Верхний должен иметь одинаковое соотношение сторон, а нижний может иметь любое соотношение сторон. Пределы оси X для обеих осей разные. Итак, я пытаюсь получить следующий рисунок:

enter image description here

Я попытался запустить следующий код:

import matplotlib.pyplot as plt
from matplotlib import gridspec

fig = plt.figure()
spec = gridspec.GridSpec(ncols=1, nrows=2, width_ratios=[1])

# Top axes with equal aspect ratio
ax0 = fig.add_subplot(spec[0], aspect='equal')
ax0.set_xlim(0,1)
ax0.set_ylim(0,1)

# Bottom axes with arbitrary aspect ratio
ax1 = fig.add_subplot(spec[1], aspect='auto')
ax1.set_xlim(0,10)
ax1.set_ylim(0,30)

plt.show()

Результат:

enter image description here

Я также пытался вручную установить высоту rat ios между осями, но все равно не получил желаемого результата.

spec = gridspec.GridSpec(ncols=1, nrows=2, width_ratios=[1], height_ratios[3,1])

enter image description here

Я полагаю, должен быть способ ручной настройки полей фигуры, а также аспектную крысу ios осей, чтобы получить желаемый макет, однако я хочу знать, существует ли более простой и автоматизированный способ сделать это, поскольку x-пределы нижнего рисунка будут меняться.

...