我正在使用plot()
andhold(Ax, 'on')
函数在同一轴上绘制多个图。但是,我注意到如果我使用set(Ax, 'XData', ..., 'YData', ...)
绘图而不是plot()
然后该hold(Ax, 'on')
功能不起作用。换句话说,如果我使用set()
函数,我无法将所有曲线一起绘制在相同的轴上。知道为什么会这样,或者是否有一种方法可以让我使用set()
并使用该hold on
功能?谢谢!
user238469
问问题
2720 次
1 回答
4
基于此答案,您可以尝试以下示例:
x1 = linspace(1,10,21);
y1 = rand(1,21);
x2 = x1;
y2 = rand(1,21);
x3 = x2;
y3 = rand(1,21);
h(1) = plot(x1,y1,'b');
h(2) = copyobj(h(1),gca);
h(3) = copyobj(h(1),gca);
set(h(2),'XData',x2,'YData',y2,'Color','r')
set(h(3),'XData',x3,'YData',y3,'Color','g')
该set
命令更新句柄引用的对象的属性。如果您不想一遍又一遍地修改一条曲线,而是添加曲线,则必须复制初始线对象,使用copyobj
. 完成此操作后,您可以生成无限数量的附加行,然后您可以为其设置属性(包括 new 'XData'
,随意'YData'
。
但是,您将需要一个初始行对象来复制和修改。
另外,取决于您如何设置你的情节,考虑用gca
你的轴手柄替换,这样参考是正确的。
于 2013-06-28T14:25:11.150 回答