我有几个时间序列信号(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行。
答案 0 :(得分:2)
那不是subplot
索引的工作方式。来自docs to subplot
:
subplot(nrows, ncols, plot_number)
其中nrows和ncols用于在概念上将图形拆分为
nrows * ncols
子轴,而 plot_number 用于标识此函数在名义网格中创建的特定子图。 plot_number 从1开始,首先跨行递增,最大值为nrows * ncols
。
因此,您希望{1-}},nrows=8
以及ncols=8
在1-64范围内,例如:
plot_number
要删除刻度标签,请使用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