簡體   English   中英

在Matlab指南針圖中包括圖例

[英]include legend in matlab compass plot

我在Matlab中使用羅盤命令繪制風速和風向。 我想將默認版本更改為(1)刪除羅盤內的標簽,以及(2)在羅盤圖外繪制圖例以演示每個箭頭的大小。

具體來說,是否可以使用羅盤添加說明箭頭大小的圖例,而不用在圖中定義值? 例如:

rng(0,'twister') % initialize random number generator
M = randn(20,20);
Z = eig(M);

figure
compass(Z)

這是一個普通的羅盤圖,其中每個條目的大小均由圖中的標簽顯示,此處為1:5。 我可以使用以下方法刪除標簽:

h = findall(gca,'type','text'); % Find all handles to text labels
legit = {'0','30','60','90','120','150','180','210','240','270','300','330','360',''}; % Define what to keep
idx = ~ismember(get(h,'string'),legit); % Take the others and set them to empty string
set(h(idx),'string',''); 

但是,我現在想包括一個圖例,該圖例顯示的箭頭長度為2。 有關如何執行此操作的任何想法?

在創建數據后嘗試以下版本:

u=abs(Z)
figure(1)
compass(Z)
set(findobj(gcf,'type','text','-and','fontsize',10),'string','')
legend({['z_1 = ',num2str(u(1)),' units'],...
        ['z_2 = ',num2str(u(2)),' units']},...
     'location','southoutside')

我經常使用羅盤(),但是實際上我不確定標簽的字體大小是否為10,在我的(許多)羅盤圖中,我已將此參數用作參數並且效果很好。 如果沒有,則只需使用參數text,findobj()也會獲得圖中的所有文本。

暫無
暫無

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

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