问题简述:使用Matlab GUI平台建立人机交互式界面时,想在一个axes上同时绘制两条线,且使用一个按钮pushbutton动态更新axes上的图像,程序运行过程中发现:第一次运行源代码时,axes能够正确显示两条线,当更改参数后再次运行同段代码时,命令行窗口出现错误提示:Axes不能是Line的子级或者Axes不能是bar的子级。
问题解决:
源代码
//第一种形式
axes(handles.axes1);
handles.axes1 = plot(x,y1,x,y2);
//第二种形式
axes(handles.axes1);
handles.axes1 = plot(x,y1);
hold on;
plot(x,y2);
>>分别运行以上两种代码,均会出现错误提示:Axes不能是Line的子级
更改后代码
axes(handles.axes1);
p = plot(handles.axes1,x,y1,x,y2);
//若不对两条线做个性化设置 此处语句也可简化为plot(handles.axes1,x,y1,x,y2);
//线条个性化设置:线型、颜色、标记、标记填充颜色...
p(1).LineStyle = ':';
p(1).Color = 'r';
p(2).Marker = '*';
p(2).MarkerFaceColor = 'b';
>>可以正确运行