exponenta event banner

Добавить легенду на график

Легенды - это полезный способ маркировки рядов данных, отображаемых на графике. В этих примерах показано, как создать легенду и внести некоторые общие изменения, например изменить расположение, задать размер шрифта и добавить заголовок. Можно также создать легенду с несколькими столбцами или легенду для подмножества выводимых на печать данных.

Создание простой легенды

Создайте фигуру с линейной диаграммой и диаграммой разброса. Добавьте легенду с описанием для каждой диаграммы. Укажите метки условных обозначений в качестве входных данных для legend функция.

figure
x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1)

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled')
hold off

legend('sin(x/2)','2016')

Figure contains an axes. The axes contains 2 objects of type line, scatter. These objects represent sin(x/2), 2016.

Задание меток с помощью DisplayName

Можно также указать метки условных обозначений с помощью DisplayName собственность. Установите DisplayName свойство как пара имя-значение при вызове функций печати. Затем вызовите legend для создания легенды.

x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1,'DisplayName','sin(x/2)')

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled','DisplayName','2016')

legend

Легенды автоматически обновляются при добавлении или удалении ряда данных. При добавлении дополнительных данных к осям используйте DisplayName для указания меток. Если не установить DisplayName свойство, то легенда использует метку формы 'dataN'.

Добавьте диаграмму рассеяния для данных 2017 года.

x3 = [0 1 2 3 4 5];
y3 = [0.1 0.4 0.6 0.9 0.8 0.7];
scatter(x3,y3,'filled','DisplayName','2017')
drawnow
hold off

Figure contains an axes. The axes contains 3 objects of type line, scatter. These objects represent sin(x/2), 2016, 2017.

Настройка внешнего вида легенды

legend функция создает Legend объект. Legend имеют свойства, которые можно использовать для настройки внешнего вида легенды, такие как Location, Orientation, FontSize, и Title свойства. Полный список см. в разделе Свойства легенды.

Задать свойства можно двумя способами:

  • Использовать пары имя-значение в legend команда. В большинстве случаев при использовании пар имя-значение необходимо указать метки в массиве ячеек, например legend({'label1','label2'},'FontSize',14).

  • Используйте Legend объект. Вы можете вернуть Legend объект как выходной аргумент из legend функция, например, lgd = legend. Затем используйте lgd с точечной нотацией для установки свойств, таких как lgd.FontSize = 14.

Расположение и ориентация условных обозначений

Укажите расположение и ориентацию легенды, задав Location и Orientation свойства как пары имя-значение. Установите местоположение в одном из восьми направлений, в данном случае: 'northwest'. Установка ориентации на 'vertical' (значение по умолчанию) или 'horizontal', как в данном случае. Укажите метки в массиве ячеек.

x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1)

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled')
hold off

legend({'sin(x/2)','2016'},'Location','northwest','Orientation','horizontal')

Figure contains an axes. The axes contains 2 objects of type line, scatter. These objects represent sin(x/2), 2016.

Размер и заголовок шрифта условных обозначений

Укажите размер и заголовок шрифта легенды, задав значение FontSize и Title свойства. Назначить Legend объект к переменной lgd. Затем используйте lgd для изменения свойств с помощью точечной нотации.

x1 = linspace(0,5);
y1 = sin(x1/2);
plot(x1,y1,'DisplayName','sin(x/2)')

hold on
x2 = [0 1 2 3 4 5];
y2 = [0.2 0.3 0.6 1 0.7 0.6];
scatter(x2,y2,'filled','DisplayName','2016')
hold off

lgd = legend;
lgd.FontSize = 14;
lgd.Title.String = '2016 Data';

Figure contains an axes. The axes contains 2 objects of type line, scatter. These objects represent sin(x/2), 2016.

Легенда с несколькими столбцами

Создайте диаграмму с шестистрочными графиками. Добавьте легенду с двумя столбцами, установив NumColumns свойство 2.

x = linspace(0,10);
y1 = sin(x);
y2 = sin(0.9*x);
y3 = sin(0.8*x);
y4 = sin(0.7*x);
y5 = sin(0.6*x);
y6 = sin(0.5*x);

plot(x,y1,'DisplayName','sin(x)')
hold on
plot(x,y2,'DisplayName','sin(0.9x)')
plot(x,y3,'DisplayName','sin(0.8x)')
plot(x,y4,'DisplayName','sin(0.7x)')
plot(x,y5,'DisplayName','sin(0.6x)')
plot(x,y6,'DisplayName','sin(0.5x)')
hold off

lgd = legend;
lgd.NumColumns = 2;

Figure contains an axes. The axes contains 6 objects of type line. These objects represent sin(x), sin(0.9x), sin(0.8x), sin(0.7x), sin(0.6x), sin(0.5x).

Включить подмножество диаграмм в легенду

Объединение двух гистограмм и диаграммы рассеяния. Создайте легенду, включающую только линейчатые диаграммы, указав Bar объекты, b1 и b2, в качестве первого входного аргумента для legend функция. Укажите объекты в векторе.

x = [1 2 3 4 5];
y1 = [.2 .4 .6 .4 .2];
b1 = bar(x,y1);

hold on 
y2 = [.1 .3 .5 .3 .1];
b2 = bar(x,y2,'BarWidth',0.5);

y3 = [.2 .4 .6 .4 .2];
s = scatter(x,y3,'filled');
hold off

legend([b1 b2],'Bar Chart 1','Bar Chart 2')

Figure contains an axes. The axes contains 3 objects of type bar, scatter. These objects represent Bar Chart 1, Bar Chart 2.

См. также

|