В Matplotlib что означает аргумент в fig.add_subplot (111)? - PullRequest
418 голосов
/ 27 августа 2010

Иногда я сталкиваюсь с таким кодом:

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
fig = plt.figure()
fig.add_subplot(111)
plt.scatter(x, y)
plt.show()

Который производит:

Example plot produced by the included code

Я читаю документацию как сумасшедшую, но не могу найти объяснение для 111. иногда я вижу 212.

Что означает аргумент fig.add_subplot()?

Ответы [ 6 ]

459 голосов
/ 10 июля 2012

Я думаю, это лучше всего объяснить следующей картинкой:

enter image description here

Чтобы инициализировать вышеизложенное, введите:

import matplotlib.pyplot as plt
fig = plt.figure()
fig.add_subplot(221)   #top left
fig.add_subplot(222)   #top right
fig.add_subplot(223)   #bottom left
fig.add_subplot(224)   #bottom right 
plt.show()
408 голосов
/ 27 августа 2010

Это параметры сетки подзаговоров, закодированные как одно целое число.Например, «111» означает «сетка 1x1, первый субплот», а «234» означает «сетка 2x3, 4-й субплот».

Альтернативная форма для add_subplot(111) - add_subplot(1, 1, 1).

36 голосов
/ 24 марта 2012

Ответ от Константина точен, но для большей информации это поведение унаследовано от Matlab.

Поведение Matlab объяснено в Настройка рисунка - Отображение нескольких графиков на рисунок в документации Matlab.

подплот (m, n, i)разбивает окно рисунка на матрицу m-by-n маленьких подзаголовков и выбирает подплот для текущего графика.Графики нумеруются вдоль верхнего ряда окна рисунка, затем второго ряда и т. Д.

12 голосов
/ 28 октября 2017

Мое решение -

fig = plt.figure()
fig.add_subplot(1, 2, 1)   #top and bottom left
fig.add_subplot(2, 2, 2)   #top right
fig.add_subplot(2, 2, 4)   #bottom right 
plt.show()

2x2 grid with 1 and 3 merge

5 голосов
/ 28 декабря 2018

fig.add_subplot(ROW,COLUMN,POSITION)

  • ROW = количество строк
  • COLUMN = количество столбцов
  • POSITION = положение графика, который вы строите

Примеры

`fig.add_subplot(111)` #There is only one subplot or graph  
`fig.add_subplot(211)`  *and*  `fig.add_subplot(212)` 

Всего 2 строки, 1 столбец, поэтому можно построить 2 подграфа.Его расположение 1-е.Всего 2 строки, 1 столбец, поэтому можно построить 2 подграфа. Его местоположение 2-е

3 голосов
/ 18 мая 2019

enter image description here

import matplotlib.pyplot as plt
plt.figure(figsize=(8,8))
plt.subplot(3,2,1)
plt.subplot(3,2,3)
plt.subplot(3,2,5)
plt.subplot(2,2,2)
plt.subplot(2,2,4)

Первый код создает первый субплот в макете, который имеет 3 строки и 2 столбца.

Три графика вПервый столбец обозначает 3 строки.Второй график располагается чуть ниже первого графика в том же столбце и т. Д.

На последних двух графиках есть аргументы (2, 2), обозначающие, что во втором столбце есть только две строки, а параметры положения перемещаются в ряд.

...