Возможно, вы ищете GridSpec. Вы можете указать размер вашей сетки (5,4) и позицию для каждого графика (строка = 0, столбец = 2, т. Е. - 0,2). Проверьте следующий пример:
import matplotlib.pyplot as plt
plt.figure(0)
ax1 = plt.subplot2grid((5,4), (0,0))
ax2 = plt.subplot2grid((5,4), (1,1))
ax3 = plt.subplot2grid((5,4), (2, 2))
ax4 = plt.subplot2grid((5,4), (3, 3))
ax5 = plt.subplot2grid((5,4), (4, 0))
plt.show()
, что приводит к следующим образом:
Если вы строите вложенных циклов, чтобы сделать вашу полную сетку:
import matplotlib.pyplot as plt
plt.figure(0)
for i in range(5):
for j in range(4):
plt.subplot2grid((5,4), (i,j))
plt.show()
, вы будете получать это:
участков работает так же, как и в любом сюжетные (назовем его непосредственно из созданных вами осей):
import matplotlib.pyplot as plt
import numpy as np
plt.figure(0)
plots = []
for i in range(5):
for j in range(4):
ax = plt.subplot2grid((5,4), (i,j))
ax.scatter(range(20),range(20)+np.random.randint(-5,5,20))
plt.show()
, в результате чего в этом:
Обратите внимание, что могут указывать разные размеры участков (указывая количество столбцов и строк для каждого графика):
import matplotlib.pyplot as plt
plt.figure(0)
ax1 = plt.subplot2grid((3,3), (0,0), colspan=3)
ax2 = plt.subplot2grid((3,3), (1,0), colspan=2)
ax3 = plt.subplot2grid((3,3), (1, 2), rowspan=2)
ax4 = plt.subplot2grid((3,3), (2, 0))
ax5 = plt.subplot2grid((3,3), (2, 1))
plt.show()
, поэтому:
В ссылке, которую я дал в начале вы также найдете примеры для удаления этикеток среди других вещей.
Использование запятых: 'plt.subplot (5,4,20)'. Это поведение можно найти в [документации] (http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.subplot). – wflynny
Также актуальный вопрос (хотя вопрос низкого качества): https://stackoverflow.com/questions/35510155/matplotlib-subplot – wflynny