Размещение субплотов Python - PullRequest
0 голосов
/ 20 декабря 2018

Это, должно быть, нубский вопрос, но как мне получить два подзаговора с (3/4) и (1/4) рисунка?Или 4/5 и 1/5

Я пробовал с gridspec и простыми подсюжетами, но не смог найти способ.В то же время я уверен, что это возможно.

На данный момент это мой код:

import matplotlib.pyplot as plt

def make_ticklabels_invisible(fig):
    for i, ax in enumerate(fig.axes):
        ax.text(0.5, 0.5, "ax%d" % (i+1), va="center", ha="center")
        for tl in ax.get_xticklabels() + ax.get_yticklabels():
            tl.set_visible(False)


plt.figure(0)
# ax1 = plt.subplot2grid((4,4), (0,0), colspan=3, rowspan=4)
ax2 = plt.subplot2grid((4,4), (0,1), colspan=1, rowspan=4)

plt.suptitle("subplot2grid")
make_ticklabels_invisible(plt.gcf())
plt.show()

ax1 и ax2 хороши, если не объединены.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Рассмотрим более естественный способ определения всех участков одновременно

fig, (ax1, ax2) = plt.subplots(ncols=2, gridspec_kw=dict(width_ratios=[3,1]))

enter image description here

Это ярлык для следующего кода с использованием gridspec

import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec

gs = GridSpec(1,2, width_ratios=[3,1])

fig = plt.figure()
ax1 = fig.add_subplot(gs[0])
ax2 = fig.add_subplot(gs[1])
0 голосов
/ 20 декабря 2018

Ок, кажется, я не правильно понял, как работает loc .Мне удалось сделать это, изменив эти две строки:

ax1 = plt.subplot2grid((4,4), (0,0), colspan=3, rowspan=4)
ax2 = plt.subplot2grid((4,4), (0,3), colspan=1, rowspan=4)

вместо моего предыдущего:

# ax1 = plt.subplot2grid((4,4), (0,0), colspan=3, rowspan=4)
ax2 = plt.subplot2grid((4,4), (0,1), colspan=1, rowspan=4)

Это для соотношений 3/4 и 1/4.

Я не буду удалять этот вопрос, а позже добавлю объяснение того, как работает loc, так как он некоторое время глючил, так что он существует как архив.

...