簡體   English   中英

添加圖例Matlab圖

[英]add legend matlab plot

我有一個matlab函數myfunction(var1,var2) ,它給了我一個帶有圖例的圖。 我想在一張圖中使用此函數生成更多圖。 到目前為止,這是有效的,即在一張圖中的2個圖具有:

myfunction(a,b)
hold on
myfunction(c,d)
hold off

這里的問題是為每個圖生成的圖例具有:

legend(sprintf('%s%s',var1,' on ',var2))
legend('boxoff')

僅在myfunction的最后一個實例中myfunction (在本例中為myfunction(c,d) ,在圖例中只有一行顯示“ c on d”,但我想在兩行中使用“ a on” b'和'c on d')

那么如何在不覆蓋圖例的情況下添加圖例呢?

如果要執行很多操作,最好將圖例標簽導出為函數的輸出參數,然后將它們連接起來並在函數外部調用legend

如果這只是hack,那么在函數內部,您可以查看軸手柄並拉出圖例條目。 有一個類似的問題在這里是這樣做的。

另一種可能性是使用MATLAB的動態圖例 (未充分記錄)功能。 在您的情況下,您無需將圖例標題傳遞給legend函數,而需要將它們用作plot函數的輸入參數:

plot(x, y, 'DisplayName', 'caption');

然后使用以下語法添加圖例:

lh = legend('-DynamicLegend');
set(lh, 'Box', 'off');

但是,如果您有大量圖形要盡可能快地(例如在循環中)在同一圖上呈現,我不會建議這種方法。 在這些情況下,動態圖例可能會嚴重影響性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM