【问题标题】:Assemble Legend for Many Curves为多条曲线组合图例
【发布时间】:2019-04-24 09:43:23
【问题描述】:

我需要为索引曲线组装一个 Matlab/Octave 图例,我发现以下示例似乎效果很好:

legend(strcat("curve ", num2str(1:2)))

将标签“曲线 1”和“曲线 2”与给定的两条曲线相关联。但是,如果我需要添加不同的、非索引类型的曲线,上面的方法似乎不再适用了。

legend(strcat("curve ", num2str(1:2)),"another curve")

在第二个示例中,第一条曲线具有图例 ["curve 1"; “曲线 2”],第二条曲线得到“另一条曲线”作为图例,而最后一条曲线没有图例。我认为这与图例解释输入的方式有关,我无法绕过它。

【问题讨论】:

    标签: matlab plot octave legend


    【解决方案1】:

    尝试预先将图例组装为元胞数组,然后将其用作图例输入。

    legendCell = cell.empty
    for i = 1:2
       legendCell{i} = ['curve' num2str(i)];
    end
    legendCell{end+1} = 'another curve';
    legend(legendCell);
    

    【讨论】:

    • 谢谢,应该可以。不得不使用循环让我很困扰。我曾尝试使用 label= [];for i=1:2;label = [label;'curve' num2str(i)];end; label= [label;'another curve'] 有效但给出警告:从数字到字符的隐式转换
    • 如果您知道图例中有多少条目,最好将元胞数组预先分配到正确的大小,而不是随着@987654322 的每次迭代而增加其大小@ 环形。只有 2 个元素,它不会有什么不同,但如果你有更多,这是一个很好的做法。
    • 如果您使用label= [''] 进行初始化,您将摆脱该警告。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2020-06-10
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    相关资源
    最近更新 更多