以下代码是我能找到的最简洁、完整且可验证的示例。我的实际情况要复杂得多:
这会导致: 正如您可以清楚地看到的那样,上方图例标题出现了问题。不知何故,在请求图例的
主要问题在于其位置——它似乎没有这样的属性,因此一旦设置就无法移动。
我阅读了Undocumented Matlab中的这篇文章,并且我可以自己想出一些类似的技巧(例如使用具有图例位置的
我使用的是Matlab 2016a。
x = 1:0.1:10;
y = sin(x);
subplot 211
plot(x,y)
[leg,att] = legend('show');
title(leg,'my title')
leg.Title.Visible = 'on';
subplot 212
plot(x,y)
leg = legend('show');
title(leg,'my title')
这会导致: 正如您可以清楚地看到的那样,上方图例标题出现了问题。不知何故,在请求图例的
att
输出时会干扰其标题。首先,由于某种原因,它使其不可见,但这已经在上面的代码中解决了。主要问题在于其位置——它似乎没有这样的属性,因此一旦设置就无法移动。
我阅读了Undocumented Matlab中的这篇文章,并且我可以自己想出一些类似的技巧(例如使用具有图例位置的
text
),但是我的情况非常复杂,并且我已经对图例进行了大量配置,并且每个图中都有几个轴。因此,我更喜欢一个简单而有效的解决方案,该方案依赖于图例标题的原始功能。我使用的是Matlab 2016a。
[lgd,icons,plots,txt] = legend(___)
重载的注意事项吗?注意:该语法不建议使用,因为它创建的图例不支持所有的图形特性。相反,使用lgd = legend(__)
语法返回图例对象并设置图例属性。 - codeaviator