matlab中legend怎样让在不同循环中subplot的图像的legend图例与线对应呢

图太大发不出来
matlab中legend怎样让在不同循环中subplot的图像的legend图例与线对应呢

在Matlab中,如果您在不同循环中使用subplot绘制图像,并且需要在每个subplot中添加legend图例,并且使图例与相应的线段对应,可以按照以下步骤操作:

在每个subplot中添加一个标签(label),用于标识相应的线段。例如,您可以使用plot函数的DisplayName参数为每个线段添加标签,如下所示:
subplot(2,2,i);
plot(x,y,'DisplayName','Line 1');
在每个subplot中使用legend函数添加相应的图例。例如,您可以使用legend函数的Location参数指定图例的位置,并使用'Interpreter','none'参数禁用转义字符,如下所示:
legend('Location','best','Interpreter','none');
在每个循环中,使用hold on函数保持当前图形,并使用hold off函数释放当前图形。例如,您可以使用以下代码在每个循环中添加和释放hold on和hold off:

for i = 1:4
    subplot(2,2,i);
    plot(x,y,'DisplayName','Line 1');
    hold on;
    plot(x,z,'DisplayName','Line 2');
    legend('Location','best','Interpreter','none');
    hold off;
end

请注意,如果您在多个循环中使用subplot绘制图像,您需要在每个循环中重置subplot的状态,以确保每个subplot都是独立的。您可以使用subplot函数的reset参数来重置subplot的状态,如下所示:

for i = 1:4
    subplot(2,2,i,'reset');
    plot(x,y,'DisplayName','Line 1');
    hold on;
    plot(x,z,'DisplayName','Line 2');
    legend('Location','best','Interpreter','none');
    hold off;
end

希望这些提示能够帮助您在Matlab中添加相应的图例和线段标签。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7443534
  • 这篇博客你也可以参考下:matplotlib.pyplot.legend()参数详解
  • 除此之外, 这篇博客: Matlab中调整subplot中子图的位置中的 Matlab中调整subplot中子图的位置 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    如果对于下面Figure1中的子图之间相互的位置不满意的话,可以点击操作框中的小鼠标箭头图案来改变子图之间相互的位置。
    原始的子图

    第一步 点击小箭头并点击你所想要改变的某个子图
    此步操作调出了figure1的属性检查器,点击Axe进入上一个控制栏。

    属性检查器
    在这里插入图片描述

    第二步 找到“位置”中的OuterPosition
    你可以点击OuterPosition框旁边竖着的三个小点来细致的调整具体参数,调整子图位置只需要调整x,y两个参数。

    在这里插入图片描述

    可以看到通过调整x,y的参数就可以调整子图的位置。
    在这里插入图片描述

    第三步 依次调整各个子图的位置
    调整每个子图的位置使它们更靠近或是分散,多试几次找到理想的效果。要注意的是figure1在全屏状态下,子图之间的距离会看上去更远,所以要达成想要的效果,要看自己具体的需要。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^