Поля сюжетов для соответствия заголовку и меткам в matplotlib - PullRequest
0 голосов
/ 14 февраля 2019

Я прочитал тонны ответов на похожие проблемы, но ни одна из них не помогла.

Я просто хочу увеличить поля между вспомогательными участками и верхним, левым и нижним краями, чтобы они соответствовали fig.suptitle и общимxlabel и ylabel.

import matplotlib.pyplot as plt
import random

#from matplotlib import rcParams
#rcParams['axes.titlepad'] = 20 # kind of works but shifts all titles, not only suptitle

def dummy(n):
    return random.sample(range(1, 100), n)


data = dict()
for i in range(4):
    data["area{}".format(i)] = [dummy(10), dummy(10)]

fig, ax = plt.subplots(2, 2, sharex='all', sharey='all', figsize=(10, 10))
fig.suptitle("Common title", fontsize=22)

ax = ax.reshape(-1)
for i, (area, data) in enumerate(data.items()):
    ax[i].set_title(area)
    ax[i].scatter(data[0], data[1])

fig.text(0.5, 0.01, 'xlabel', ha='center', fontsize=15)
fig.text(0.01, 0.5, 'ylabel', va='center', fontsize=15, rotation=90)

fig.tight_layout() # Does nothing
fig.subplots_adjust(top=0.85) # Does nothing
fig.show()

Matplotlib версия 3.0.0

Python 3.6.6

Пример графика из общего кода

1 Ответ

0 голосов
/ 14 февраля 2019

Есть много способов справиться с этим, но я предлагаю использовать для этого ввод gridspec_kw в plt.subplots.Документация для gridspec_kw - это просто документация gridspec.GridSpec .Например:

fig, ax = plt.subplots(2, 2, sharex='all', sharey='all',
                       gridspec_kw=dict(left=0.1, right=0.9,
                                        bottom=0.1, top=0.9),
                       figsize=(10, 10))

Входные данные left, right, ... для gridspec_kw определяют экстенты всей группы вспомогательных участков.

Это дает вамчто ты ищешь?

...