7

我有一个带有 5 个子图的图。我声明了包含 6 个子图的 subplot(2,3,X)。第 6 个子图是空的。我将把图例移到所有地块的第 6 个空位置。

这怎么可能?

4

2 回答 2

4

如果您只想使用标准matlab,则需要子图的句柄,然后需要它的位置。然后将图例的位置设置为子图的位置。参考文档:

注意 您可以通过使用 'Location' 选项将 4 元素位置向量传递给 legend 函数来设置图例位置。要定义现有图例的位置,请使用 set 函数将 4 元素位置向量分配给 'Position' 属性。您不能将 Location 选项与 set 功能一起使用

例如:

subplot(2,3,1), plot(1:10,2:11)
myLegend=legend('text1')
set(myLegend,'Units', 'pixels')
myOldLegendPos=get(myLegend,'Position')
hold on
h=subplot(2,3,6)
set(h,'Units', 'pixels')
myPosition=get(h,'Position')
set(myLegend,'Position',[myPosition(1) myPosition(2) myOldLegendPos(3) myOldLegendPos(4)])
于 2013-07-24T12:08:35.093 回答
3

也许试试File Exchange 中的legendflex,它看起来可以做你想做的事。

于 2013-07-24T10:39:02.440 回答