Как изменять размер оси OX относительно OY?

Допустим у оси OY максимальное значение 20, но OX может принимать различные максимальные значения (<= 20), как сделать, чтобы ось OX масштабировалась относительно OY. У меня есть subplots на нем несколько графиков, максимальное значение всех графиков 20 по OY, но по OX максимальное значение разное. введите сюда описание изображения

Как сделать чтобы каждый график масштабировался по OX, то есть у 1 графика ось OX была 1/4(5/20) от оси OY, у графика 2 1/2(10/20)от оси OY и так далее. Но при этом ось OY сохранила свой размер. Код примера

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(1, 4)
y = np.linspace(1, 20, 20)
x0 = np.linspace(1, 5, 20)
x1 = np.linspace(1, 10, 20)
x2 = np.linspace(1, 15, 20)
x3 = np.linspace(1, 20, 20)

ax[0].plot(x0, y)
ax[1].plot(x1, y)
ax[2].plot(x2, y)
ax[3].plot(x3, y)

plt.show()

Ответы (1 шт):

Автор решения: strawdog

Ну так укажите gridspec при создании subplots:

import matplotlib.pyplot as plt
import numpy as np


y = np.linspace(1, 20, 20)
x0 = np.linspace(1, 5, 20)
x1 = np.linspace(1, 10, 20)
x2 = np.linspace(1, 15, 20)
x3 = np.linspace(1, 20, 20)
ratios = [max(x) for x in [x0, x1, x2, x3]]

fig, ax = plt.subplots(1, 4, figsize=(16,9), gridspec_kw={'width_ratios': ratios})

ax[0].plot(x0, y)
ax[1].plot(x1, y)
ax[2].plot(x2, y)
ax[3].plot(x3, y)

plt.show()

введите сюда описание изображения

→ Ссылка