Легенда всегда прикреплена к осям, вы не можете создать (насколько мне известно) легенду, которая ссылается на объекты в двух разных осях. Но поскольку на вашей фигуре оба графика используют одинаковые цвета, вы можете просто создать легенду для одного из них и расположить ее внутри фигуры там, где вы хотите:
h = legend(L);
sz = h.Position(3:4);
h.Position = [ 0.5-sz(1)/2, 1-sz(2)-0.05, sz ];
Примечание: единицы измерения положения нормализованы, так что 0 - левый или нижний край, а 1 - правый или верхний край. Вектор положения [ left, right, width, height ]
.
Сначала я получил размер поля легенды, затем разместил его по центру по горизонтали и на расстоянии 0,05 от верхнего края.
Вы также можете выбрать кнопку курсора мыши на панели инструментов фигуры, которая обеспечивает взаимодействие мыши с компонентами фигуры. Теперь вы можете нажать и перетащить поле легенды туда, где вы хотите. h.Position
теперь возвращает вам позицию, так что вы можете сохранить ее в своей программе, чтобы воссоздавать то же самое местоположение вручную каждый раз, когда вы воссоздаете свою фигуру. Например, я перетащил коробку в это место, которое хорошо выглядит на моем экране, по крайней мере:
h.Position = [0.4647, 0.2333, 0.1062, 0.1452];
(Но учтите, что ваш ящик может быть другого размера, в зависимости от размеров шрифта и т. Д.)
Я думаю, что лучше добавлять метки непосредственно на круговую диаграмму, а не заставлять читателя искать цвета в легенде. ИМО, точные проценты никогда не должны быть показаны на рисунке. Если вам нужно передать точные значения, используйте таблицу. Цифра позволяет легко сравнивать величины. Если вы добавите проценты, люди сосредоточатся на них и проигнорируют графическое представление. Я хотел бы представить данные так:
X = [0.3200 0.3800 0.2400 0.0600 0.0001];
Y = [0.14 0.28 0.37 0.11 0.11];
L = {'Max','Sym','Dvd','Att','Sta'};
figure
subplot(1,2,1)
pie(X,L);
title('Pre-event Distribution', 'FontSize',12)
subplot(1,2,2)
pie(Y,L);
title('Post-event Distribution', 'FontSize',12)