В Matplotlib, что означает этот аргумент в fig.add_subplot (111)?

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

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. иногда я вижу a 212.

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

Ответ 1

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

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

Ответ 2

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

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()

Ответ 3

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

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

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

Ответ 4

Мое решение

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

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-е

Ответ 6

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) обозначающие, что во втором столбце есть только две строки, а параметры позиции перемещаются по рядам.