% patch 函数的填充示例代码
aa = 0:50;
ia1 = 2:8; ia2 = 20:30;
bb = 8*exp(-aa/100);
figure()
plot(aa,bb);
hold on
ab = patch([aa(ia1),fliplr(aa(ia1))],[8*ones(1,length(ia1)),0*ones(1,length(ia1))],'r','FaceAlpha',.3)
ab.EdgeAlpha = 0;
ab2 = patch([aa(ia2),fliplr(aa(ia2))],[8*ones(1,length(ia2)),0*ones(1,length(ia2))],'b','FaceAlpha',.3,...
'EdgeAlpha',0)
savefig(gcf,'fill填充代码示例.fig')
通过设定ab 的patch 范围,可指定填充区域
figure()
plot(aa,bb);
yab = get(gca,'ylim');
hold on
ab = patch([aa(ia1),fliplr(aa(ia1))],[yab(2)*ones(1,length(ia1)),0*ones(1,length(ia1))],'r','FaceAlpha',.3)
ab.EdgeAlpha = 0;
ab2 = patch([aa(ia2),fliplr(aa(ia2))],[(yab(2)-1)*ones(1,length(ia2)),yab(1)*ones(1,length(ia2))],'b','FaceAlpha',.3,...
'EdgeAlpha',0)
savefig(gcf,'fill填充代码示例2.fig')
在命令行窗口 输入 ab 或ab2
点击上面的 【所有属性】,可查看其他指定属性,从而对所绘图精细化定制,注意 ab 和 ab2 是一个 对象
比较重要的是 上面示例代码的 指定 的填充颜色‘Facecolor’与其透明度 ‘FaceAlpha’(Face开头),还有边缘的‘Edge’属性(‘Edge’开头的alpha color lightning),示例代码中指定EdgeAlpha=0,此时边缘较细,效果比较明显
可参考 此链接https://blog.sciencenet.cn/home.php?mod=space&uid=2824237&do=blog&quickforward=1&id=1134014