【问题标题】:Display value of Y axis inside GUI plot在 GUI 图中显示 Y 轴的值
【发布时间】:2015-06-09 17:50:43
【问题描述】:

我在带有 GUI 的 matlab 中有程序代码。我有一些名为“axes1”的轴对象 - 显示了我的绘图(x、y 值的简单绘图)。
我希望在线点之后显示该点的 Y 轴值。最好是动态显示 - 移动光标后,值会自动显示新的指向值。
我看到了一些关于这方面的教程,但我无法将他们的技巧应用到使用 GUI 编程。

【问题讨论】:

    标签: matlab user-interface plot


    【解决方案1】:

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

    这是带有 cmets 的 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
    

    启用数据光标模式并选择曲线上的点后的 GUI 截图示例:

    玩得开心!

    【讨论】:

      猜你喜欢
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多