来源
作图标注图例时,图例过大,和图形成重合,但是又不能把图片变大,想把图例整体旋转90度竖着放,但是没有实现,不得已把图例拆分成两个,分别放在图形不同区域。
方法
代码核心思想时在原来图片位置重新创建一个一模一样的坐标系,然后在新坐标轴上绘制第二个图例,并且把第二个坐标系不显示,从而实现看起来两个图例一样。
代码:
close all
clear
clc
figure
hold on
line1 = plot(rand(1,10));
line2 = plot(rand(1,10));
line3 = plot(rand(1,10));
line4 = plot(rand(1,10));
% 绘制第一个图例
lgd = legend([line1, line2],{'SMA Y Experiment', 'SMA Y Theory'},...
'FontSize',9, 'FontName','Arial', 'Location', 'northwest');
% 创建新坐标系,用get获取原来坐标系的位置并赋值给新坐标系,保证两系重合,设置第二个坐标系不显示
axesNew = axes('position',get(gca,'position'),'visible','off');
% 绘制第二个图例时指定在新建的坐标系中
legend(axesNew,[line3, line4],{'SMA Y Experiment', 'SMA Y Theory'},...
'FontSize',9, 'FontName','Arial', 'Location', 'southwest');
效果
其他
另外尝试过直接把坐标系旋转90度,这样第二个图例就直接实现旋转了90度,同样没有实现。只有把Y轴正方向重下往上变成重上往下的转变,代码如下
axis xy
axis ij