我正在使用Matlab中的y = normpdf(x,mu,sigma);
绘制正常曲线。
这为我绘制了一条正常的曲线。但是,我需要在曲线上显示其他信息,例如曲线上有垂直线来显示mu和sigma。与此相似:
是否有任何Matlab函数在曲线上绘制这样的垂直线?
谢谢, 艾达
答案 0 :(得分:5)
没有内置功能,但我们可以通过手轻松完成:
创建正常曲线并绘制它:
x = -2:0.05:2;
mu = 0; sigma = 0.5;
y = normpdf(x,mu,sigma);
plot(x,y)
为sigmas添加行:
hold on;
plot( [mu - sigma mu - sigma],[0 max(y)],'--')
plot( [mu + sigma mu + sigma],[0 max(y)],'--')
您可以将其更改为您需要的任何西格玛(2sigma 3sigma)。 如何添加文字?这样:
text(0.1,-0.05,'mu + sigma');
或者如果你想让它看起来很漂亮:
text(-0.65,-0.05,'\mu - \sigma')
结果:
答案 1 :(得分:0)
在Matlab中绘制线条的最简单方法可能只使用plot
。以下代码段从[x1,y1]到[x2,y2]:
plot([x1,y1], [x2,y2], plotoptions)
要确保此行在当前数字中也可见,请使用hold on
。这会产生如下代码:
y = normpdf(x,mu,sigma)
figure(1)
hold on
plot(x,y) % Your normal distribution
plot([mu,startY], [mu, stopY], plotoptions) % Plot the line at position mu.
% The startY and stopY indicate the bottom and top of your graph.
hold off
绘图的Mathworks文档页面可以作为很好的参考,有很多示例和不同的绘图选项。例如,如何制作虚线或彩色线: http://www.mathworks.com/help/matlab/ref/plot.html?searchHighlight=plot%20line