Python Matplotlib:子批

Python Matplotlib:子批,python,loops,matplotlib,subplot,Python,Loops,Matplotlib,Subplot,我有几个时间序列信号(8x8),我想用子图绘制。我的数据存储在一个称为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个,

我有几个时间序列信号(8x8),我想用子图绘制。我的数据存储在一个称为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

这不是
子批次
索引的工作方式。从:

子批次(nrows、ncols、绘图编号)

其中,nrows和ncols用于名义上将地物拆分为
nrows*ncols
子轴,而plot_编号用于标识该函数将在名义网格内创建的特定子地块。绘图编号从1开始,先跨行递增,最大值为
nrows*ncols

因此,您需要将
nrows=8
ncols=8
plot\u编号
设置在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([])
nrows,ncols=8,8
对于范围(8)内的y:
对于范围(8)内的x:
图号=8*y+x+1
子地块(nrows、ncols、地块编号)
绘图(时间,H[x,y:])
#如果不在网格底部/左侧,请删除勾号标签
如果y0:gca()。设置标签([])

要删除勾号标签,请使用
gca()
获取当前轴,并将
xticklabels
yticklabels
设置为空列表:
[]

我在线查找了一个示例,我想我真的不明白它是如何工作的。谢谢你知道如何删除轴上的值吗,因为我有太多的绘图,我看不到任何东西了?当然,你需要删除
xticklabels
yticklabels
。对于要删除勾号标签的子批次,请尝试将其设置为空列表。有关建议,请参见我的编辑