【问题标题】:Two time series plots and shading between them...MATLAB两个时间序列图和它们之间的阴影......MATLAB
【发布时间】:2011-11-13 02:08:42
【问题描述】:

我正在使用 MATLAB 绘制时间序列的两条线...(最小和最大线)

我的点在数据末尾的一个点上收敛。

我正在尝试填充线条之间的区域,然后在阴影区域顶部绘制其他线条。

这是我的问题:

当我使用“填充”时,它完全符合我的要求……但它会从数据的最后一个点画一条线回到初始数据点。我该如何摆脱它?

这是我的 2 个示例的非常模糊的草图:

图下方的线就是我说的……

任何想法如何避免这种情况?

谢谢!

【问题讨论】:

标签: matlab plot time-series fill


【解决方案1】:

我猜你是用

创建填充的
fill([xData1;xData2],[yData1;yData2])

其中xData1 是您的第一条曲线的 x 数据的 n×1 数组。这将导致多边形形状怪异,因为多边形的“角”没有正确排序。

相反,你应该这样做

fill([xData1;xData2(end:-1:1)],[yData1;yData2(end:-1:1])

即翻转两个数据集之一的顺序。

【讨论】:

    【解决方案2】:

    正如@Jonas 解释的(击败我),您需要正确排序两个时间序列的数据。让我添加一个例子:

    %# first series
    x1 = linspace(pi/4, 5*pi/4, 100);
    y1 = cos(x1);
    
    %# second series
    x2 = linspace(pi/4, 5*pi/4, 100);
    y2 = sin(x2);
    
    subplot(121), fill([x1 x2], [y1 y2], 'r')
    subplot(122), fill([x1 fliplr(x2)], [y1 fliplr(y2)], 'r')
    hold on
    plot(x1,y1, 'Color','b', 'LineWidth',3)
    plot(x2,y2, 'Color','g', 'LineWidth',3)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-10
      • 2011-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      相关资源
      最近更新 更多