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