如何在MATLAB中用一种颜色填充点的曲线上方并在同一条曲线下填充另一种颜色?

问题描述 投票:0回答:1

在MATLAB中,我有以下几组要点:

T_arr =
        1000
         500
         400
         300
         200
         100

results =

    2.6000    
    2.2000    
    2.1500    
    2.1000    
    2.0000    
    1.8000 

当我绘制它们时,它看起来像这样:

plot(T_arr, results); hold on; 
plot(T_arr, results,'*'); 
xlabel('T'); 
ylabel('result'); 
title('T vs. result')

enter image description here

我想用一种颜色(例如红色)为曲线上方的区域着色,而用另一种颜色(例如蓝色)为曲线下方的区域着色。如何在MATLAB中完成?

我知道MATLAB中有两个函数分别称为fillarea,但是我不清楚如何针对特定问题使用它们。

matlab plot matlab-figure
1个回答
0
投票

要使用fill,我们需要提供形成闭合形状的一组点。我们将使用您数据集中的点以及图片的左上角(x0,y0)和右下角(x1,y1)。

enter image description here

现在,我们需要找到这些坐标并为具有不同颜色的两组点调用填充(fill中的最后一个参数)。如果数据已排序或已知限制,则可以避免使用maxmin。我在该行之前绘制区域以确保标记可见-这也是我不使用红色和蓝色的原因。

T_arr = [1000, 500, 400,300, 200, 100];
results =[2.6000,    2.2000,   2.1500,    2.1000,    2.0000, 1.8000 ];
plot(T_arr, results); hold on; 
x0 = min(T_arr);
y0 = max(results);
x1 = max(T_arr);
y1 = min(results);
fill([x0, T_arr],[y0, results],'g');
fill([x1, T_arr],[y1, results],'y');
plot(T_arr, results,'*'); 
xlabel('T'); 
ylabel('result'); 
title('T vs. result');

这里是结果:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.