如MatLab online documentation中所述,从R2014b开始,色条和图例不再是轴对象。
这限制了可能在legend上工作以实现目标的可能性。
可能的解决方案是按照以下步骤创建自己的基于轴的图例:
使用以下语法[lgd,icons,plots,txt] = legend(___)创建调用legend函数的图例(注意,不建议使用此语法,我们将在后续步骤中删除图例,因此不会出现问题)
获取传奇的位置
标识图例中的项目数
对于图表中的每一行,图例中有三个项目(line,marker和text)
如果图表中有六行,则图例句柄将按以下顺序包含18对象:
6个处理text
对于6行中的每一行
该行的句柄
标记的1个句柄
获取图例中项目的数据:
行数据:XData,YData,Color,'LineStyle`
文字资料:string,position
删除原始图例
将axes添加到图中,其位置和大小等于原始图例
在此轴上绘制代表图例的线条(您已获得前面步骤的数据)
缩小线条,只减少减少XData第二元素的值
将图例文本对应添加到该行(使用text函数。由于在上一步中您已经恢复了要在左侧移动文本的行的长度
减小axes的大小:
您可以使用text项目的Extent属性来识别较长的项目的长度
然后添加相应行的长度
使用上述步骤中计算的值更新axes位置(其width)
这