我试图创建一个滑动窗口(带滑块)来查看多个子图,每个子图都是一个长时间序列。
S=['set(gca,''xlim'',get(gcbo,''value'')+[0 ' num2str(chunkDuration) '])'];
h=uicontrol('style','slider','units','normalized','position',Newpos,...
'callback',S,'min',0,'max',xmax-chunkDuration);
如前所述,这只会导致底部的图移动。我理解这是因为我设置了gca
。但是,将gcf
更改为gca
不会有帮助,因为这会尝试设置图形的xlim
而不是其子。当我尝试
kids = get(gcf,'Children')
S=['set(kids,''xlim'',get(gcbo,''value'')+[0 ' num2str(chunkDuration) '])'];
我得到错误:
??? Undefined function or variable 'kids'.
??? Error while evaluating uicontrol Callback
那么,为什么上面不起作用呢?
即使在方法上有了实质性的改变,问题仍然存在。
在代码的某个地方,您尝试使用名为subplot_handles
的变量。出现此错误是因为在您尝试使用该变量时未定义该变量。
:
是否有一个原因,你保存你的set
命令作为String
s?我怀疑这完全没有必要。
创建子图时,尝试将句柄存储到子图对象创建的轴上。
ax(1) = subplot(311);
ax(2) = subplot(312);
ax(3) = subplot(313);
之后,您可以使用以下命令为所有subplot
设置限制:
set(ax, 'XLim', get(gcbo,'value') + [0 num2str(chunkDuration)] );