2016-08-11 84 views
1

我想在一个阴谋有多个传说。此解决方案在2014b版本之前完美运行。我想弄清楚如何使用手柄来优雅地使用它,但目前为止没有成功。任何想法都欢迎。在一个阴谋的Matlab多个传说2014b

例2013b:

x = 1:50; 
y1 = sin(x/2); 
y2 = cos(x/2); 

f = figure(1); 
pl(1) = plot(x,y1,'g');hold on; 
pl(2) = plot(x,y2,'r'); 

h1 = legend('eg1','eg2');  
set(h1,'Location','NorthEast') 

tmp = copyobj(h1,f); 

h2 = legend(pl,'sin','line');  
set(h2,'Location','SouthWest') 

我使用

ax = gca; 
tmp = copyobj([h1,ax],f); 

得到的东西,但是当我重新设置的传说,传说以前积下的去。

谢谢!

+0

执行TMP = copyobj当我看到下面的错误(H1,F); 使用matlab.graphics.illustration.Legend/connectCopyToTree(第5行)时出错 必须将图例与其关联的轴一起复制。将矢量输入与COPYOBJ一起使用,以将图例和坐标轴一起复制。 –

回答

4

默认情况下,Matlab只允许每个轴有一个图例,所以你需要做的是创建一个假的/空的第二轴来获得你的图例。 Mathworks help具有此

代码以产生下列图表的一个很好的例子是在这里

x= 0:0.01:2*pi; 
y = sin(x); 
hl1 = line(x, y,'Color','k','LineStyle','--'); 
ax1 = gca; 
set(ax1,'xlim',[0, 7],'ylim',[-1, 
1],'XColor','k','YColor','k'); 
legend_handle1 = legend(' sin'); 
ax2 = axes('Position',get(ax1,'Position'),... 
      'xlim',[0, 7],'ylim',[-1,1],... 
      'Visible','off','Color','none'); 
hl2 = line(pi/2, 1,'Color','r','Marker', 'o','Parent',ax2); 
hl3 = line(pi, 0,'Color','g','Marker', 'x','Parent',ax2); 
legend_handle2 = legend('peak', 'zero'); 
set(legend_handle2, 'Color', 'none'); 

enter image description here