在Matlab中使用同一轴绘制多个图

在Matlab中使用同一轴绘制多个图,matlab,plot,matlab-guide,Matlab,Plot,Matlab Guide,我有一个弹出菜单(用来创建它的指南)。它调用3个函数 第一个函数给出14x14x14的散点图 第二个函数绘制4x1的条形图(动态数据) 第三个函数绘制Mx14(动态数据) 所有这些都使用相同的轴轴(handles.someName) 我试着把轴的焦点放在每个开关语句上 function plot_options_popup_Callback(hObject, eventdata, handles) str = get(hObject, 'String'); val = get(hObject,

我有一个弹出菜单(用来创建它的指南)。它调用3个函数

  • 第一个函数给出14x14x14的散点图
  • 第二个函数绘制4x1的条形图(动态数据)
  • 第三个函数绘制Mx14(动态数据)
  • 所有这些都使用相同的轴
    轴(handles.someName)

    我试着把
    的焦点放在每个开关语句上

    function plot_options_popup_Callback(hObject, eventdata, handles)
    
    str = get(hObject, 'String');
    val = get(hObject, 'Value');
    
    switch str{val};
        case 'Final Reading'
            YesNo = evalin('base','exist(''eeg_output_1d'',''var'')');
             axes(handles.eeg_final)
            if(YesNo == 1)
                plot(evalin('base','eeg_output_1d'));
            else
                return;
            end
        case 'Activation Plot'
            axes(handles.eeg_final)
            activation
        case 'Emotion State'
            axes(handles.eeg_final)
            emo_Callback
    end
    
    当我将选项更改为新选项时,焦点将更改为连续打印的动态数据

    有没有办法让GUI坚持我想要的东西,并在后台绘制动态数据


    提前谢谢。

    不太清楚,抱歉。
    激活
    emo\u回调
    函数中有什么?您是否已尝试过按住
    ?你能提供更多的细节吗?谢谢所有绘图功能(
    plot
    scatter
    bar
    包括在内)都可以采用可选参数
    Parent
    ,该参数将定义它们将在其中绘制的轴(因此,如果使用此参数,则无需在绘图之前“聚焦轴”)。除此之外,@Benoit_11是正确的,您需要提供更多详细信息,还需要仔细查看函数和/或@Benoit_11的
    NextPlot
    属性。激活函数会给出散点图(静态),其中as
    emo_回调
    是动态数据,每秒更新一次。所以我用条形图来画它。按住将按住当前图形并在其上绘制,这不是我想要做的,而是绘制单独的图形,但仅显示所选内容,并且通过
    emo\u回调函数生成的新图形不应可见。@Hoki您的意思是说
    轴(handles.eeg\u final,someVariable)
    我甚至尝试过,但这给了我一个错误。否。我的意思是
    plot(x,y,'Parent',handles.eeg_final)
    y
    vs
    x
    绘制在手柄
    handles.eeg_final
    指向的轴上。同样的原理也适用于
    散点图
    条形图。对于您的问题,您需要使用
    按住
    首先绘制3个初始图形(绘图、散点和条形图)。一旦这些图形存在,如果您必须更新它,您可以使用
    set(handles.yourplot,'XData',updatedX,'YData',updatedY)
    等进行更新。。。其中
    句柄。yourplot
    是要更新的图形的句柄(您必须在首次创建图形时检索句柄)。