Я пытаюсь создать фигуру, состоящую из сетки 2x2, где в каждом квадранте есть 2 вертикально уложенных подзаголовка (т.е. сетка 2x1). Однако я не могу понять, как этого добиться.
Самое близкое, что я получил, это использование gridspec и некоторого уродливого кода (см. Ниже), но поскольку gridspec.update(hspace=X)
изменяет интервал для всех подзаговоров, я все еще не там, где хотел бы быть.
В идеале, я хочу, используя приведенное ниже изображение в качестве примера, уменьшить расстояние между подзаголовками в каждом квадранте, увеличивая вертикальное расстояние между верхним и нижним квадрантами (т.е. между 1-3 и 2-4).
Есть ли способ сделать это (с использованием или без использования gridspec)? Первоначально я представлял собой создание каждой из подсетей-сеток (т.е. Каждую сетку 2x1) и вставляя их в большую сетку 2x2 подзаголовков, но я не понял, как добавить подзаговор в подзаголовок, если есть даже далеко.
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
plt.figure(figsize=(10, 8))
gs = gridspec.GridSpec(4,2)
gs.update(hspace=0.4)
for i in range(2):
for j in range(4):
ax = plt.subplot(gs[j,i])
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
plt.tick_params(which='both', top='off', right='off')
if j % 2 == 0:
ax.set_title(str(i+j+1))
ax.plot([1,2,3], [1,2,3])
ax.spines['bottom'].set_visible(False)
ax.get_xaxis().set_visible(False)
else:
ax.plot([1,2,3], [3,2,1])