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

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

Создайте простую легенду

Создайте рисунок с линией графика и диаграммы поля точек. Добавить легенду с описанием для каждого графика. Задайте метки легенды как входы 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.

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

The legend функция создает Legend объект. L- egend объекты имеют свойства, которые можно использовать для настройки внешнего вида легенды, такие как 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.

См. также

|