如何在MATLAB中在同一图形中绘制水平线和曲线?

如何在MATLAB中在同一图形中绘制水平线和曲线?,matlab,plot,horizontal-line,Matlab,Plot,Horizontal Line,我应该在同一个图形中显示数据图(曲线)和数据平均值图(平面水平线)。我的代码可以很好地计算所有内容,并在图形中显示曲线,但无法显示水平线 plot(1:24,hours3,'b-.',1:24, avg3,'r--'); 因此,列“hours3”的图显示得很好,但平均值“avg3”的图根本没有显示出来。它应该是一条平面线,从x轴上的点1延伸到点24。有人知道这是为什么吗?这是因为绘图(1:24,avg3,rx-)被解释为24个单点。使用rx--作为线型,可以显示点打印在右侧,但未连接 plot

我应该在同一个图形中显示数据图(曲线)和数据平均值图(平面水平线)。我的代码可以很好地计算所有内容,并在图形中显示曲线,但无法显示水平线

plot(1:24,hours3,'b-.',1:24, avg3,'r--');
因此,列“hours3”的图显示得很好,但平均值“avg3”的图根本没有显示出来。它应该是一条平面线,从x轴上的点1延伸到点24。有人知道这是为什么吗?

这是因为
绘图(1:24,avg3,rx-)
被解释为24个单点。使用
rx--
作为线型,可以显示点打印在右侧,但未连接

plot(1:24,hours3,'b-.',1:24, repmat(avg3,1,24),'r--');
另外,按住
键,您可以在现有图形中继续打印。

请尝试以下代码:

StartPoint=1;
EndPoint=24;
Resolution=1; % you can set 0.1 if you want more precision
Ave=Ave3;% set a value for Ave3

x=[StartPoint:Resolution:EndPoint]; 
NumberofPoints=((EndPoint-StartPoint)/Resolution)+1;
HrzLine=Ave*ones(1,NumberofPoints);

Curve=0.2*x.^3-4.*x.^2+8;

plot(x,HrzLine);
hold on;
plot(x,Curve);

2018b版本使添加水平线(和垂直线)变得更加容易(对于垂直线)

也可以轻松添加后续行

yline(50)                                       % horizontal line at y = 0
xline(12,'b--')                                 % vertical line at x = 12  (blue, dashed)
需要MATLAB R2018b或更高版本

yline(50)                                       % horizontal line at y = 0
xline(12,'b--')                                 % vertical line at x = 12  (blue, dashed)