Matplotlib: подзаголовок

У меня есть несколько сигналов временных рядов (8×8), которые я хотел бы построить с использованием подзаголовка. Мои данные хранятся в матрице H (x, y, N), где N – количество точек в каждом сигнале. Я хотел бы отобразить 64 сигнала, используя подзаголовки.

fig = figure(figsize=(12,8)) time = np.arange(0, Nt, 1) for x in range(8): for y in range(8): subplot(8,y+1,x+1) plot(time,H[x,y,:]) 

Я получаю 8 сигналов в первом ряду, 4 во втором, затем 2, 2, 1, 1, 1 и 1.

Это не так, как работает индексация subplot . Из документов в subplot :

subplot(nrows, ncols, plot_number)

В тех случаях, когда nrows и ncols используются для условного разделения фигуры на nrows * ncols , nsols и plot_number используются для определения конкретного подзаголовка, который эта функция должна создавать в пределах условной сетки. plot_number начинается с 1, увеличивается по первым строкам и имеет максимум nrows * ncols .

Итак, вы хотите иметь nrows=8 , ncols=8 а затем plot_number в диапазоне 1-64, что-то вроде:

 nrows,ncols = 8,8 for y in range(8): for x in range(8): plot_number = 8*y + x + 1 subplot(nrows,ncols,plot_number) plot(time,H[x,y,:]) # Remove tick labels if not on the bottom/left of the grid if y<7: gca().set_xticklabels([]) if x>0: gca().set_yticklabels([]) 

Чтобы удалить метки тика, используйте gca() чтобы получить текущие оси, и установите xticklabels и yticklabels в пустой список: []