Я пытаюсь создать фигуру, состоящую из сетки 2x2, где в каждом квадранте есть 2 вертикально уложенных поднабора (т. Е. Сетка 2x1). Однако я не могу понять, как этого добиться.Matplotlib - добавление подзаголовков в подзаголовок?
Самый близкий я получил использование 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])
идеально подходит, спасибо :) – user3014097