color region in the plot based on the values
1 次查看(过去 30 天)
显示 更早的评论
Hi,
In the attached array, I need to color the region based on whenever A(:,2) is greater than 5. I tried yregion,seems this will work only in 2023.
2 个评论
Dyuman Joshi
2023-11-2
Which version of MATLAB are you using?
If you want an output similar to what yregion provies, what is the upper limit for the region?
If it is not similar to that, what is the expected output? A visual example would be helpful.
Dyuman Joshi
2023-11-2
You forgot to provide the end values -
Red color from 5 to what? Inf?
Similarly, green color from what to 5? -Inf?
And I suppose the x-limits should be the range of the x values i.e. A(:,1)?
采纳的回答
Star Strider
2023-11-2
Try this —
LD = load('matlab.mat');
A = LD.A
thrshld = 5;
Lv = A(:,2) > thrshld;
idx1 = find(Lv);
idx2 = idx1(diff([0; idx1]) == 1);
% [x1,x2] = bounds(idx2)
idx2 = min(idx2) : max(idx2);
figure
plot(A(:,1), A(:,2))
hold on
patch([A(idx2,1); flip(A(idx2,1))], [thrshld+zeros(size(A(idx2,2))); flip(A(idx2,2))], 'r', 'FaceAlpha',0.5, 'EdgeColor','none')
patch([A(idx2,1); flip(A(idx2,1))], [min(ylim)+zeros(size(A(idx2,2))); thrshld+zeros(size(A(idx2,2)))], 'g', 'FaceAlpha',0.5, 'EdgeColor','none')
hold off
grid
.
3 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Cell Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!