Fill command issue for time series
7 次查看(过去 30 天)
显示 更早的评论
I am trying to fill the space in between two lines on a time series
I have created a 45x1 cell array of datenum variables (X), a 45x1 cell array for the blue line (Y1) and a 45x1 cell array for the red line (Y2)
The plot of these two lines can be seen in the attatched image 'Lines'
I want to fill in the space in between these lines
However, when I use the following script, the space in between the lines does not fill - as seen in the image 'Fill'. What am I doing incorrectly?
EDIT: I have attached some sample data, Y1 is the higher values
>> plot(X, Y1, 'b', X, Y2, 'r')
>> hold on
>> fill([X fliplr(X)],[Y1 fliplr(Y2)],'c')
0 个评论
采纳的回答
Les Beckham
2020-4-5
编辑:Les Beckham
2020-4-5
Based on your sample data, you need to make a simple change to your code. Since your vectors are columns, you need to concatenate using a semicolon so you get vectors and not nx2 matrices.
Here is the result after making this change:
plot(x, y1, 'b', x, y2, 'r')
hold on
fill([x; flip(x)], [y1; flip(y2)], 'c', 'edgecolor', 'none')
0 个评论
更多回答(1 个)
Prabhanjan Mentla
2020-4-3
In general fill function is used to fill the polygons with specified color( c ).
x = 1:5;
y1 = sin(x) + 2;
y2 = sin(x);
fill([x fliplr(x)], [y2 fliplr(y1)], 'c')
This code fills the area between y1 and y2.
Plot followed by hold on and fill, may also work in the same way as above code.
Here in your case I assume there is a problem with your input data.
Refer the below link.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!