[英]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.