2016-06-23 71 views
2

我需要繪製兩個向量的數據,並且希望每個圖的數據點以圖例中解釋的不同顏色顯示。但是,下面的代碼僅顯示第二個圖例。我究竟做錯了什麼?對於兩個圖的Matlab圖例僅適用於第二個圖

for i_plot = 1 : plot_step : N 
    subplot(N, 1, i_plot) 
    h_A = plot(bookmarksA(i_plot, :),0,'b.','MarkerSize',24); 
    legend('a'); 
    xlim ([0 pieceDuration]) 
    set(gca, 'yTick', []); 
    title(subj_string(i_plot,:)) 
    hold on 
    h_Z = plot(bookmarksZ(i_plot, :),0,'r.','MarkerSize',24); 
    legend(h_Z, 'z'); 
end 

​​

回答

2

你一次只能通過一個標籤/手柄組合到legend命令。對於給定座標軸,每次調用legend都會覆蓋以前對legend的調用,刪除以前的圖例而不是添加到現有的圖例。您需要撥打legend一次情節句柄和標籤。

legend([h_A, h_Z], {'a', 'z'}) 

更新

因爲在你的情況h_Ah_Z是情節的陣列具有相同的外觀處理,你可以只通過第一項從h_Ah_Zlegend

legend([h_A(1), h_Z(1)], {'a', 'z'}) 
+0

謝謝,這實際上是我第一次使用int的那一行,但它給了我錯誤「矩陣的維度串聯不一致」。這又歸因於兩個向量中的每個向量中存在不同數量的數據點,使得它們各自的句柄(h_A和h_Z)分別具有3個和7個元素。不能在這種情況下創建圖例,還是隻需要另一種解決方法? – z8080

+1

@ z8080「h_A」和「h_Z」中的所有繪圖對象都具有相同的外觀嗎?如果是這樣,你可以做'傳奇([h_A(1),h_Z(1)],{'a','z'})' – Suever

+0

燁工作,非常感謝 – z8080

相關問題