【问题标题】:How do I plot a horizontal line and a curve in the same graph in MATLAB?如何在 MATLAB 的同一张图中绘制水平线和曲线?
【发布时间】:2015-10-31 23:50:15
【问题描述】:

我应该在同一张图中显示数据图(曲线)和数据平均值图(水平水平线)。我的代码计算一切正常并在图表中显示曲线,但我无法显示水平线。

plot(1:24,hours3,'b-.',1:24, avg3,'r--');

所以“hours3”列的图显示得很好,但“avg3”的平均图根本没有出现。它应该是一条从 x 轴上的点 1 延伸到 24 的平线。有谁知道这是为什么?

【问题讨论】:

    标签: matlab plot horizontal-line


    【解决方案1】:

    这是因为 plot(1:24,avg3,rx--) 被解释为 24 个单点。使用rx-- 作为线型显示点绘制正确但未连接。

    plot(1:24,hours3,'b-.',1:24, repmat(avg3,1,24),'r--');
    

    还可以使用hold on 继续在现有图形中绘图。

    【讨论】:

      【解决方案2】:

      试试下面的代码:

      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);
      

      【讨论】:

        【解决方案3】:

        2018b 版本通过 yline()xline() 用于垂直线)使添加水平线(和垂直线)变得更加容易。

        Xrng = 1:.01:24;
        fh =@(x) 0.2*x.^3 - 4.*x.^2 + 50*sin(x)+ 8;     % curve
        
        plot(Xrng,fh(Xrng))
        yline(0)                                        % horizontal line at y = 0
        

        可以很容易地添加后续行。

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

        需要 MATLAB R2018b 或更高版本。

        【讨论】:

          猜你喜欢
          • 2014-01-30
          • 2015-04-04
          • 2022-01-22
          • 2021-09-05
          • 1970-01-01
          • 2023-02-15
          • 1970-01-01
          • 1970-01-01
          • 2022-01-21
          相关资源
          最近更新 更多