用户界面-在matlab中使用UIControl控制多个子图的x范围



我试图创建一个滑动窗口(带滑块)来查看多个子图,每个子图都是一个长时间序列。

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)] );

相关内容

  • 没有找到相关文章

最新更新