在Matlab中使用同一轴绘制多个图
我有一个弹出菜单(用来创建它的指南)。它调用3个函数在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,
轴(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
属性。激活函数会给出散点图(静态),其中asemo_回调
是动态数据,每秒更新一次。所以我用条形图来画它。按住将按住当前图形并在其上绘制,这不是我想要做的,而是绘制单独的图形,但仅显示所选内容,并且通过emo\u回调函数生成的新图形不应可见。@Hoki您的意思是说轴(handles.eeg\u final,someVariable)
我甚至尝试过,但这给了我一个错误。否。我的意思是plot(x,y,'Parent',handles.eeg_final)
将y
vsx
绘制在手柄handles.eeg_final
指向的轴上。同样的原理也适用于散点图
和条形图。对于您的问题,您需要使用按住
首先绘制3个初始图形(绘图、散点和条形图)。一旦这些图形存在,如果您必须更新它,您可以使用set(handles.yourplot,'XData',updatedX,'YData',updatedY)
等进行更新。。。其中句柄。yourplot
是要更新的图形的句柄(您必须在首次创建图形时检索句柄)。