【问题标题】:Legend within a loop and subplot matlab循环和子图matlab中的图例
【发布时间】:2015-10-10 19:54:01
【问题描述】:

我想在两个变量的循环中创建一个图例。我尝试了不同的方法,但我不知道如何在图例中指定子图中每次迭代的黑线和红线的名称。

基本上我想要的是在 subplot 1 中,图例应该是 'Sandvik NO';'Sandvik NO 24h mean' 在子图 2 中 'Sandvik NO2';'Sandvik NO2 24h mean' 等六个子图

这里是代码

legend3=[{'Sandvik NO';'Sandvik NO_2';'Sandvik NO_x';'Sandvik    PM_{10}';'Sandvik PM_{10-2.5}';'Sandvik PM_{2.5}'}];

figure
for i=1:6
    subplot(2,3,i)
    plot(d0(:,26),d0(:,18+i)','ko','MarkerSize',10)
    hold on
    plot(dd_day(:,26),dd_day(:,18+i)','ro','MarkerSize',6,'MarkerFaceColor','r')
    hold on
    ylabel(' ug m^{-3}','fontsize',14)
    xlabel(' time ','fontsize',14)
    datetick('x','mmm')
    legend(legend3{i})
    xlim([All_time(1) All_time(6551)])
end

【问题讨论】:

    标签: matlab loops legend subplot


    【解决方案1】:

    试试这个:

    figure
    for i=1:6
    
        legend3={['Sandvik NO', num2str(i)];['Sandvik NO',num2str(i) ,' 24h mean']};
    
        subplot(2,3,i)
        plot(d0(:,26),d0(:,18+i)','ko','MarkerSize',10)
        hold on
        plot(dd_day(:,26),dd_day(:,18+i)','ro','MarkerSize',6,'MarkerFaceColor','r')
        hold on
        ylabel(' ug m^{-3}','fontsize',14)
        xlabel(' time ','fontsize',14)
        datetick('x','mmm')
        legend(legend3)
        xlim([All_time(1) All_time(6551)])
    end
    

    【讨论】:

    • 您好,这不起作用,这会将每个字符串放在不同的子图中,但是这两个字符串应该作为一个子图中的图例
    • 然后尝试将其与 Theodor 的答案结合起来尝试h = plot(d0(:,26),d0(:...,然后再尝试legend(h, legend3)
    【解决方案2】:

    试试这个:

    figure
    p1 = subplot(1,2,1)
    plot(sin(1:100),'r')
    p2 = subplot(1,2,2) 
    plot(cos(1:100),'b')
    legend(p1,'test')
    legend(p2,'test2')
    

    并根据您的需要进行调整。它应该工作!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 2017-08-21
      • 2011-06-13
      • 1970-01-01
      • 2016-11-05
      • 2012-06-21
      • 2014-04-01
      • 1970-01-01
      相关资源
      最近更新 更多