簡體   English   中英

傳奇為Matlab中的單點圖

[英]Legend for a single point in Matlab plot

我在legend功能方面遇到了一些問題。 我的代碼如下:

xax = logspace(1, 4, 1000);
R1 = sqrt(R11.*R21);
%freq and mag are vectors of length 300
loglog(freq, mag, 'k-');
hold on;    
loglog(xax, R1, 'r-');
loglog(f1, R1, 'bo');
loglog(f2, R1, 'bo');
legend('|Zvc|', 'R1', 'f1', 'f2');

但是,傳說並沒有像我期望的那樣發揮作用。 前兩個顯示黑線和紅線,很好。 但最后兩點顯示為紅線而不是藍色圓圈。 這是一張顯示錯誤圖例的圖片:

在此輸入圖像描述

f1f2是表示交叉點的標量值。

有沒有辦法調整我的代碼,以便圖例看起來正確?

legend將最后兩個圖顯示為紅線的原因是您的第二個loglog函數正在返回多個句柄。 它看起來像一條線,但它實際上疊加了多條線。 更改loglog(xax, R1, 'r-'); h=loglog(xax, R1, 'r-') ,你會看到。 legend函數按照創建它們的順序將您給它的字符串應用於當前圖中的每個句柄。 發生這種情況是因為R1是標量而xax是矢量。 所有Matlab的繪圖功能都以這種方式工作。

以下是我將如何更改相關行:

loglog(xax, R1+zeros(size(xax)), 'r-');

雖然如果它總是一條線,這就足夠了:

xax = logspace(1, 4, 2);
loglog(xax, [R1 R1], 'r-');

暫無
暫無

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

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