一個figure存在多個legend:多行多列圖例
阿新 • • 發佈:2019-02-03
問題:如何在Matlab中,將圖例繪製成多行多列的?
查詢資料過程中發現,
1)有的方法要求多個plot中橫座標具有相同的長度
2)高版本中,部分函式報錯(應該可以改正)
本文根據需要找到一個可靠的解決方法,現整理如下:
優點:每個plot互相獨立;程式碼量少,易於操作;
程式示例:第一行一個圖例,第二行兩個圖例且水平放置;
%%功能:繪製多個legend figure; x = 1:10; p1 = plot(x,2.*x,'k-'); %真實RUL hold on; p2 = plot(x,4.*x,'b-'); %改進距離度量 p3 = plot(x,8.*x,'r-'); %餘弦相似度+距離 % ============= Legend 1 : hg1 = legend('第一條'); set(hg1,'FontSize',12,'Location', 'SouthOutside','box','off'); %注:將legend放在圖外面時,Legend 1不能通過滑鼠移動,只能通過程式碼調整位置 % ============= Legend 2 : ah2 = axes('position',get(gca,'position'),'visible','off'); hg2 = legend(ah2, [p2 p3], '第二條', '第三條'); set(hg2,'FontSize',12,'Location', 'SouthOutside',... 'Orientation','horizontal','box','off');
說明:
1)第一個圖例只需獲取legend的控制代碼,然後對齊進行設定;
2)後面的圖例均需要三行即
ah2 = axes('position',get(gca,'position'),'visible','off'); %固定寫法,只需更改返回值。必須有!!!
hg2 = legend(ah2, [p2 p3], '第二條', '第三條'); %繪製圖例,[p2 p3]表示繪製哪幾個曲線的圖例
set(hg2,...) %設定各種引數
比如:再新增一個圖例
ah3 = axes('position',get(gca,'position'),'visible','off');
hg3 = legend(ah3, [p4 p5 p6], '第四條', '第五條','第六條');
set(hg3,'FontSize',12,'Location', 'SouthOutside',...
'Orientation','horizontal','box','off');
通過繪製多個legend,達到m行n列的圖例效果;
進一步,在figure的“影象屬性”狀態下,可以進行更多的操作。