在GUI图中显示Y轴的值

时间:2015-06-09 17:50:44

标签: matlab user-interface plot

我在matlab中使用GUI编写程序代码。我有一些名为" axes1" - 显示我的情节(x,y值的简单图)。
我希望在线上点之后显示Y轴的值。最好是它会动态显示 - 在移动curosor后,值会自动显示新的指向值 我看到了一些关于此的教程,但我无法将他们的技巧应用于GUI编程。

1 个答案:

答案 0 :(得分:1)

这是一个非常简单的示例,您可以使用datacursormode这一交互式光标,它可以让您选择图上的点并获取它们的坐标。您可以轻松自定义示例并将坐标存储在变量中等等,但我会让这部分由您完成:)。

以下是带注释的GUI代码。您可以复制/粘贴到新的.m文件中进行测试和播放。 GUI只是一个显示随机数据的轴和一个可用于切换datacursormode的激活(即打开或关闭)的复选框。

function DispYData

clear
clc

global dcm_obj

%// Create figure and ui controls
hFig = figure('Position',[200 200 500 500]);

handles.Axes = axes('Position',[.2 .2 .7 .7]);

plot(1:20,rand(1,20));

%// Create datacursor. Disable for the moment.
dcm_obj = datacursormode(hFig);
set(dcm_obj,'Enable','off')

handles.checkbox = uicontrol('Style','check','Position',[20 50 120 20],'String','Activate datacursor','Callback',@(s,e) GetPos);

guidata(hFig,handles)
    function GetPos

        %// If checked, activate datacursor mode
        if get(handles.checkbox,'Value')
            set(dcm_obj,'Enable','on')            
        %// If uncheck, disable.
        else
            set(dcm_obj,'Enable','off')
        end
        guidata(hFig,handles)
    end
end

启用datacursormode并选择曲线上的点后,GUI的示例屏幕截图:

enter image description here

玩得开心!