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

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

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

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

Добавьте диаграмму поля точек для 2 017 данных.

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 объект. Легенда объекты имеют свойства, которые можно использовать, чтобы настроить внешний вид легенды, такой как Location, Orientation'FontSize' , и Title свойства. Для полного списка смотрите Legend Properties.

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

  • Используйте пары "имя-значение" в 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.

Смотрите также

|