在使用imagesc创建的绘图上覆盖半透明矩形?

son*_*oom 4 matlab matlab-figure

imagesc在MatLab中用来绘制声场.我现在想要在图像上的某个位置覆盖半透明的填充矩形.理想情况下,我希望能够执行以下操作:

imagesc(g,g,field);
hold on
plotRectangle([100,100,200,200], 'b', 0.5)
hold off
Run Code Online (Sandbox Code Playgroud)

其中b是矩形的颜色,0.5是透明度.可以这样做吗?

Sue*_*ver 6

您可以使用rectangle创建矩形对象,然后使用指定为RGBA的颜色来包含透明度

rectangle('Position', [100 100 200 200], 'FaceColor', [0 0 1 0.5])
Run Code Online (Sandbox Code Playgroud)

或者,您可以只使用一个patch对象

p = patch('vertices', [100, 100; 100, 200; 200, 200; 200 100], ...
          'faces', [1, 2, 3, 4], ...
          'FaceColor', 'b', ...
          'FaceAlpha', 0.5)
Run Code Online (Sandbox Code Playgroud)