2

我有包含 1 个按钮(绘图)和一个轴的界面(GUI)

我有传记对象:

gr=[0 1 0;0 1 1;0 0 0];
bg = biograph(gr);

当我使用时,我想在界面中的轴中显示图形

view(bg)

它会打开新表单来显示 graph ,我尝试使用以下方法在轴上显示它:

xx=view(bg);
plot(xx)

但我不能!冷,请你帮帮我

谢谢

4

1 回答 1

1

当您调用 时view(bg),它不会打开常规图形,而是打开传记查看器。这不仅包含图形的显示,还包含几个用于缩放和平移可视化的自定义控件,以及用于操作和注释图形本身的上下文菜单。传记查看器旨在以交互方式独立使用,而不是嵌入在用户设计的 GUI 中。

因此,不可能直接/简单地在您自己的轴上显示传记。

我能想到的最佳解决方法如下:

  1. 进行GUI 调用view(bg),这将在不同的窗口中显示显示。
  2. 打电话set(0, 'ShowHiddenHandles', 'on')。这是必要的,因为传记查看器对您隐藏了它的句柄。
  3. 调用bgfig = gcf以获取传记查看器的句柄。
  4. 使用 .获取传记查看器的子代c = get(bgfig, 'Children');
  5. 复制传记轴(这是图的第一个孩子)到您的 GUI 图newAxisHandle = copyobj(c(1), myGUIFigureHandle)
  6. newAxisHandle适当调整 GUI 图上新轴的大小。
  7. 调用close(bgfig)以关闭传记查看器。

这感觉像是一件非常糟糕的事情,但我认为它会发生得足够快,以至于你的 GUI 的用户应该只会注意到快速闪烁。

于 2013-09-11T09:59:42.613 回答