Matlab 画颜色不同的 分段折线图

本文介绍如何使用Matlab编程实现两种类型的折线图分割:一种是以纵坐标值为基准进行分割,另一种是以横坐标位置为基准进行分割。通过调整颜色、线宽等属性,使得不同区间的趋势更加明显。

1.以纵坐标为分割

clear;clc;
data = load("折线图需要的数据.mat");
data = data.data;
color = [0.933333333333333  0.815686274509804  0.847058823529412;
0.690196078431373  0.643137254901961  0.894117647058824;
0.800000000000000  0.643137254901961  0.890196078431373];

x = 1:length(data);
limit1 = 6;
limit2 = 12;

x1 = find(data < limit1);
x2=find((data>=limit1)&(data<=limit2));
x3 = find(data > limit2);

for i = 2:length(data)
    A1 = find(x1 == i);
    A2 = find(x2 == i);
    A3 = find(x3 == i);
    if ~isempty(A1)
        num = 1;
    elseif ~isempty(A2)
        num = 2;
    else
        num =3;
    end
    plot(i-1:i,data(i-1:i),'LineWidth',2,'Color',color(num,:))
    hold on
end

plot(x,limit1*ones(1,length(x)),'--k','LineWidth',1);
hold on
plot(x,limit2*ones(1,length(x)),'--k','LineWidth',1);
hold on

xlabel("自变量");
ylabel("因变量","Rotation",0);

set(gca,"FontSize",12,"LineWidth",1.5);
box off

2.以纵坐标分割结果展示

在这里插入图片描述

3.以横坐标为分割

clear;clc;
data = load("折线图需要的数据.mat");
data = data.data;
color = [0.933333333333333  0.815686274509804  0.847058823529412;
0.690196078431373  0.643137254901961  0.894117647058824;
0.800000000000000  0.643137254901961  0.890196078431373];
limit = 600;
plot(1:limit,data(1:limit),'LineWidth',2,'Color',color(1,:));
hold on
plot(limit:length(data),data(limit:end),'LineWidth',2,'Color',color(2,:));
hold on
y = get(gca,'YLim');
plot([limit limit], [y(1),y(2)],'--k','LineWidth',0.3);
hold on
xlabel("自变量");
ylabel("因变量","Rotation",0);
h = legend("训练值","预测值");
set(h,'FontSize',11,'FontWeight','normal','box','off')
set(gca,"FontSize",12,"LineWidth",1.5);
box off

4.以横坐标分割结果展示

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值