Как закрасить область и сделать ее прозрачной между двумя строками в MATLAB? - PullRequest
0 голосов
/ 31 мая 2018

Я заштриховал область между двумя строками, она не очень чистая:

area(xData,[Y1(:) ,Y2(:)-Y1(:)]); hold on

colormap([1 1 1; 0 0 1]);

Как сделать ее прозрачной в MATLAB?Так что это выглядит так:

graph

ref: peltiertech.com

1 Ответ

0 голосов
/ 31 мая 2018

Вы можете использовать свойство FaceAlpha объекта area для установки уровня прозрачности:

xData = 1:7;
Y1 = [3 2 1 4 3 2 1];
Y2 = [8 6 9 8 7 5 6];
area(xData, Y2, 'EdgeColor',[0 .447 .741], 'FaceColor',[0.929 .694 .125], 'FaceAlpha',.3);
hold on
area(xData, Y1, 'EdgeColor',[0 .447 .741], 'FaceColor', [1 1 1]);

Более чистый подход - использовать patch вместо area:

h = patch([xData xData(end:-1:1) xData(1)], [Y1 Y2(end:-1:1) Y1(1)], 'b');
set(h, 'EdgeColor',[0 .447 .741], 'FaceColor',[0.929 .694 .125], 'FaceAlpha',.3)

enter image description here

...