[英]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');
但是,傳說並沒有像我期望的那樣發揮作用。 前兩個顯示黑線和紅線,很好。 但最后兩點顯示為紅線而不是藍色圓圈。 這是一張顯示錯誤圖例的圖片:
f1
和f2
是表示交叉點的標量值。
有沒有辦法調整我的代碼,以便圖例看起來正確?
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.