2016-08-11 90 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