学习matlab legend使用时,只注意到了常规的做法,例如legend(‘l1’,‘l2’,‘l3’,‘l4’),
如果画了4条曲线,则顺序显示’l1’,‘l2’,‘l3’,’l4’的图例。
再复杂一些,可通过plot或者line等的句柄来对应画出图例, 例如:
f1 = plot(a);
f2 = line([x1, x2],[y1,y2]);
legend([f1,f2], ‘plot’, ‘line’);
这样f1对应的图例为‘plot’, f2 对应的图例为‘line’。
但是在实际应用中,我发现,有些时候,legend([f1,f2], ‘plot’, ‘line’)这种用法,[f1,f2]这个句柄数组有时是不确定的,
例如判断是否有某个文件,如果有该文件则读取该文件的数据并作图,例如f2,但是如果没有该文件,则不画,图例中就不显示该f2对应的‘line’,这怎么办呢?通过查询以及实验,找到了方法如下:
句柄,是数组形式的,所以建立一个句柄数组,handleList = [], 句柄对应的图例内容为字符串,因此用元组来存放图例字符内容, legendText = {}.
当判断具备画图条件时,将该画图对应的句柄(thisHandle)存放进handleList中, 方法为 handleList = [handleList, thisHandle],但是图例字符内容为字符串,存放在元组中,不可以按照数组的方式进行内容存放,需要通过索引来添加图例字符串内容:legendText{index} = ‘plot’; index = index + 1;其中index为自建的变量,用来指定存放位置。
当所有的判断条件判断完毕,handleList 和 legendText中就存放着一一对应的内容,最后使用命令legend(handleList, legendText),可以达到根据不同的条件,画出不同的曲线,并显示相应的图例的效果。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35982.html