2013-06-18 84 views
2

我有一個根據測試參數定義線條屬性的圖。例如,在下面的圖中,藍線的值爲A = 1,紅色的是A = 2。帶點的實線具有B = 10並且虛線具有Xs B = 20。當我創建一個圖例時,它會爲每一條線繪製一個條目。我想有一個傳說是這樣的:顏色和標記的圖例條目

[藍] A = 1
[紅] A = 2
- 。 B = 10
--x B = 20

我有更多的條目比你在下面看到,所以這將節省大量的空間。有誰知道這是否可能在Matlab中?

sample plot

UPDATE

這裏就是我試圖對埃坦的回答,沒有運氣。

figure(2); 
plot(1:5,1:5,'b'); 
hold all; 
plot(1:5,1:5,'r'); 
plot(1:5,1:5,'k.-'); 
plot(1:5,1:5,'kx--'); 
h = get(gca,'Children'); 
M = {'A=1','A=2','B=10','B=20'}; 
figure(1); 
legend(h,M); % This makes the legend appear in Figure 2, but I want it in 1. 

回答

2

一種可能的方式來做到這將是第一存儲陣列中的對應於四個採樣線以下述方式h 4把手:

  • h(1)是藍色實線的手柄。
  • h(2)是紅色實線的句柄。
  • h(3)是點劃線的句柄。
  • h(4)是點交叉線的句柄。

,然後餵它們到legend一起,像這樣所需的字符串:

legend(h, 'A = 1', 'A = 2', 'B = 10', 'B = 20') 

編輯:如果你不能獲得這四個把手,也可以繪製單獨「空」行(有其座標值爲NaN)具有相同的圖形屬性(藍色,紅色,點劃線和交叉劃線),然後獲取其手柄。這樣他們作爲線系列存在,但實際上並沒有繪製。

+0

我試過了,我只能讓圖例出現在與'h'相關的圖中,而不是在我原來的圖中。我用'h(n)= plot(...);'來生成句柄。 –

+0

這裏h不是圖形手柄,它是樣本線條系列手柄的向量。你怎麼畫這些線?你能展示示例代碼嗎? –

+0

那麼我應該問,你是如何得到這個的?我在樣本行上嘗試了'h = get(gca,'Children')',但這也不起作用。 –