在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')
我想用一种颜色(例如红色)为曲线上方的区域着色,而用另一种颜色(例如蓝色)为曲线下方的区域着色。如何在MATLAB中完成?
要使用fill
,我们需要提供形成闭合形状的一组点。我们将使用您数据集中的点以及图片的左上角(x0,y0)和右下角(x1,y1)。
现在,我们需要找到这些坐标并为具有不同颜色的两组点调用填充(fill
中的最后一个参数)。如果数据已排序或已知限制,则可以避免使用max
和min
。我在该行之前绘制区域以确保标记可见-这也是我不使用红色和蓝色的原因。
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');
这里是结果: