火腿肠杀手 2025-01-06 14:56 采纳率: 60%
浏览 13
已结题

Matlab图例修改

Matlab修改图例


for i=0:0.1:0.9
    for j=0.2
D=7;gamma=0.2;C=8
dfun=@(t,x)[ x(1)*(1-x(1))*(4.2*x(2)+2.35-D); x(2)*(1-x(2))*(-2.7*x(1)-(0.5-gamma)*C+2.1)]
[T,Y] = ode45( dfun,[0 10],[i j]);
grid on
plot(T,Y(:,1),'r-'); 
hold on
    end
end
for i=0:0.1:0.9
    for j=0.9
D=7;gamma=0.2;C=8
dfun=@(t,x)[ x(1)*(1-x(1))*(4.2*x(2)+2.35-D); x(2)*(1-x(2))*(-2.7*x(1)-(0.5-gamma)*C+2.1)]
[T,Y] = ode45( dfun,[0 10],[i j]);
grid on
plot(T,Y(:,1),'b--');
hold on
    end
end
xlabel('t')
ylabel('x')

上面是代码,下面是原图

img


想弄成如下图例的形式,请问怎么修改图例代码?

img

  • 写回答

20条回答 默认 最新

  • 镜花照无眠 2025-01-06 15:19
    关注

    img

    加入图例和文本

    % Parameters
    D = 7; 
    gamma = 0.2; 
    C = 8;
    % Create figure
    figure;
    hold on;
    % Loop for plotting y with j = 0.2 (red solid line)
    for i = 0:0.1:0.9
        j = 0.2;  % Set j to 0.2
        dfun = @(t,x)[ x(1)*(1-x(1))*(4.2*x(2)+2.35-D); x(2)*(1-x(2))*(-2.7*x(1)-(0.5-gamma)*C+2.1)];
        [T,Y] = ode45(dfun,[0 10],[i j]);
        plot(T,Y(:,1),'r-');  % Red solid line
        j1 = 0.9;  % Set j to 0.9
        dfun1 = @(t,x)[ x(1)*(1-x(1))*(4.2*x(2)+2.35-D); x(2)*(1-x(2))*(-2.7*x(1)-(0.5-gamma)*C+2.1)];
        [T1,Y1] = ode45(dfun1,[0 10],[i j1]);
        plot(T1,Y1(:,1),'b--');  % Blue dashed line
    end
    hold off;
    % Labels for axes
    xlabel('t');
    ylabel('x');
    % Add legend with specific descriptions for y values
    legend('y = 0.2', 'y = 0.9', 'Location', 'best');
    % Add additional text annotations for alpha and xi
    text(3, 0.8, '\alpha = 0.3,\xi = 0.85','FontSize',12,'Color','k');
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(19条)

报告相同问题?

问题事件

  • 系统已结题 1月14日
  • 已采纳回答 1月6日
  • 创建了问题 1月6日