matlab - 突出显示部分 matlab 图

标签 matlab plot fill area

我有一个如下所示的 matlab 图:

enter image description here

每个子图的 Y 值存储在一维数组中。我想做的是找到顶部图形高于某个高度的区域,比如 0.5。我还想在其他图表中突出显示同一区域。

这是我正在谈论的例子:

enter image description here

到目前为止,我能找到的最好的函数是 area 函数,它将填充 matlab 网格上的一个区域。但是,如果有人能告诉我如何使其透明以及如何填充多个区域而无需执行大量区域命令,那就太好了。

否则我可以在结构中识别一组区域并使用 for 循环绘制它们。这是我会这样做的一些伪代码:

countstruct = 1;
for i = 1:length(yValue)
    if (yValue(i) > 1)
        outside = [outside, i]
    else
         areas(countstruct).outside = outside;
         countstruct = countstruct + 1;
         clear outside;

     end
 end

然后绘制区域我会这样做:

for i = 1:length(areas)
    area(areas(i).outside, ones(length(area), 1)*14, "SomeThingToMakeItTransperant')
end

我会为每个子图都这样做。显然这很复杂,所以最好有一个衬垫。谁能想到一个?

最佳答案

我想通了,我提供的伪代码获得了正确的区域。然后你可以这样做:

for i = 1:length(areas)
    harea = area(areas(i).outside, ones(length(areas(i).outside), 1)*14, 'LineStyle', 'none')
    set(harea, 'FaceColor', 'r')
    alpha(0.25)
    hold on
end

alpha 设置大部分区域图中的透明度。这与问题中的代码结合导致:

这在 matlab 中绘图非常酷。

关于matlab - 突出显示部分 matlab 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13734086/

相关文章:

matlab - 加速迭代 - MATLAB

matlab - 选择时间序列的一部分

matlab - 如何在 MATLAB 中填充 3D 图形下方的区域?

具有意外翻转的 Matlab 图像和绘图

plot - gnuplot:如何将绘图区域设置为数据的像素完美表示

python - 在 Python 中生成、填充和绘制六边形格子

Matlab 打印图形到 eps 一致地切割轴标签

python - Plotly:如何在两条垂直线之间设置填充颜色?

ios - 从不同的 View Controller 填充核心数据实体

matlab 静态方法是不必要的,对吧?