Сюжет matplotlib 1: 2: 1 - PullRequest
       4

Сюжет matplotlib 1: 2: 1

0 голосов
/ 03 марта 2020

Я пытаюсь построить PDF формата A4 со следующим макетом:

  1. 1 диаграмма, охватывающая 2 столбца
  2. 2 диаграммы, каждая из которых охватывает 1 столбец
  3. 1 диаграмма, охватывающая 2 столбца

У меня есть следующий код:

fig = plt.figure(figsize=(8.27,11.69))
ax = fig.add_subplot(311)
ax = fig.add_subplot(323)
ax = fig.add_subplot(324)
ax = fig.add_subplot(315)

, но я получаю следующую ошибку:

ValueError: num must be 1 <= num <= 3, not 5

что я отсутствует

1 Ответ

0 голосов
/ 03 марта 2020

Это правильный синтаксис:

fig = plt.figure()
ax = fig.add_subplot(311)
ax = fig.add_subplot(323)
ax = fig.add_subplot(324)
ax = fig.add_subplot(313)

enter image description here

Однако, для такого рода вещей вы получите удобочитаемость, если вы используете GridSpec https://matplotlib.org/3.1.1/tutorials/intermediate/gridspec.html Следующий код дает точно такой же вывод, но (по крайней мере для меня) легче понять

fig = plt.figure()
gs = fig.add_gridspec(3, 2)
fig.add_subplot(gs[0, :])
fig.add_subplot(gs[1, 0])
fig.add_subplot(gs[1, 1])
fig.add_subplot(gs[2, :])
...