How to plot the difference between two plots (using shade)
4 次查看(过去 30 天)
显示 更早的评论
Hello everyone, I have two plots like this:
plot(OBS,'Color','#007aa5')
hold on
plot(Modeled,'Color','#ff55a3')
xlabel('time step')
Now I want to illustrate the difference between these two plots by shade like the following example:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/757179/image.png)
Where plot 2 is less than plot1, the difference determines by yellow sahde and where plot 2 is greater than plot1difference determine using green shade.
I attached my datasets,
Thank you in advance
1 个评论
Ravi Narasimhan
2021-10-4
编辑:Ravi Narasimhan
2021-10-4
Try the solution by @Image Analyst in https://www.mathworks.com/matlabcentral/answers/180829-shade-area-between-graphs
You may need to adapt it for your case to get the different colors.
采纳的回答
Star Strider
2021-10-4
LD1 = load('OBS[1].mat');
OBS = rmmissing(LD1.OBS);
LD2 = load('Modeled[1].mat');
Modeled = rmmissing(LD2.Modeled);
x = 1:numel(OBS);
figure
plot(OBS,'Color','#007aa5')
hold on
plot(Modeled,'Color','#ff55a3')
patch([x(:); flip(x(:))], [OBS; flip(Modeled)], 'b', 'FaceAlpha',0.25, 'EdgeColor','none')
xlabel('time step')
xlim([min(x) max(x)])
I am not certain what the ‘y’ axis is supposed to be. If the intent is that in increases from the top to the bottom (instead of the default shown here),. provide the appropriate axis tick values, then add:
set(gca, 'YDir','reverse')
.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!