bar

Штриховой график

Описание

пример

bar(y) создает гистограмму с одной полосой для каждого элемента в y. Если y является m -by- n матрицей, тогдаbar создает m группы n полос.

пример

bar(x,y) рисует полосы в местах, заданных x.

пример

bar(___,width) задает относительную ширину полосы, которая управляет разделением полос внутри группы. Задайте width как скалярное значение. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах.

пример

bar(___,style) задает стиль штриховых групп. Для примера используйте 'stacked' отображение каждой группы как одной разноцветной полосы.

пример

bar(___,color) устанавливает цвет для всех полос. Для примера используйте 'r' для красных брусков.

пример

bar(___,Name,Value) задает свойства гистограммы с помощью одного или нескольких аргументов пары "имя-значение". Только гистограммы, которые используют 'grouped' по умолчанию или 'stacked' свойства панели настройки поддержки стилей. Задайте аргументы пары "имя-значение" после всех других входных параметров. Список свойств см. в разделе Свойства панели.

пример

bar(ax,___) графики в осях заданные ax вместо в текущую систему координат (gca). Опция ax может предшествовать любой комбинации входных аргументов в предыдущих синтаксисах.

пример

b = bar(___) возвращает один или несколько Bar объекты. Если y является вектором, тогда bar создает одну Bar объект. Если y является матрицей, тогда bar возвращает Bar объект для каждой серии. Использование b для установки свойств полос после отображения гистограммы.

Примеры

свернуть все

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(y)

Figure contains an axes. The axes contains an object of type bar.

Задайте местоположения стержней вдоль оси X.

x = 1900:10:2000;
y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(x,y)

Figure contains an axes. The axes contains an object of type bar.

Установите ширину каждой полосы равную 40 процентам от общего пространства, доступного для каждой полосы.

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(y,0.4)

Figure contains an axes. The axes contains an object of type bar.

Отображение четырех групп по три полосы.

y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
bar(y)

Figure contains an axes. The axes contains 3 objects of type bar.

Отобразите по одной полосе для каждой строки матрицы. Высота каждой полосы является суммой элементов в строке.

y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
bar(y,'stacked')

Figure contains an axes. The axes contains 3 objects of type bar.

Определите x как вектор трехлетних значений. Определите y как матрица, которая содержит комбинацию отрицательных и положительных значений. Отображение значений в гистограмме.

x = [1980 1990 2000];
y = [15 20 -5; 10 -17 21; -10 5 15];
bar(x,y,'stacked')

Figure contains an axes. The axes contains 3 objects of type bar.

Один из способов указать категории для ваших баров - задать X как категориальный массив. The bar функция использует отсортированный список категорий, поэтому панели могут отображаться в другом порядке, чем вы ожидаете. Чтобы сохранить порядок, вызовите reordercats функция.

Определите X как категориальный массив и вызвать reordercats функция для определения порядка для полос. Затем задайте Y как вектор штриховых высот и отобразить штриховой график.

X = categorical({'Small','Medium','Large','Extra Large'});
X = reordercats(X,{'Small','Medium','Large','Extra Large'});
Y = [10 21 33 52];
bar(X,Y)

Figure contains an axes. The axes contains an object of type bar.

Определите vals как матрица, содержащая значения двух наборов данных. Отобразите значения в гистограмме и задайте выходной аргумент. Поскольку существует два набора данных, bar возвращает вектор, содержащий два Bar объекты.

x = [1 2 3];
vals = [2 3 6; 11 23 26];
b = bar(x,vals);

Figure contains an axes. The axes contains 2 objects of type bar.

Отображение значений в советах первой серии полос. Получите координаты советов полос путем получения XEndPoints и YEndPoints свойства первого Bar объект. Передайте эти координаты в text и задайте вертикальное и горизонтальное выравнивание так, чтобы значения были расположены по центру над советами стержней.

xtips1 = b(1).XEndPoints;
ytips1 = b(1).YEndPoints;
labels1 = string(b(1).YData);
text(xtips1,ytips1,labels1,'HorizontalAlignment','center',...
    'VerticalAlignment','bottom')

Figure contains an axes. The axes contains 5 objects of type bar, text.

Затем отобразите значения над советами второй серии полос.

xtips2 = b(2).XEndPoints;
ytips2 = b(2).YEndPoints;
labels2 = string(b(2).YData);
text(xtips2,ytips2,labels2,'HorizontalAlignment','center',...
    'VerticalAlignment','bottom')

Figure contains an axes. The axes contains 8 objects of type bar, text.

Начиная с R2019b, вы можете отобразить плиточное размещение гистограмм с помощью tiledlayout и nexttile функций. Вызовите tiledlayout функция для создания мозаичного графика размещения 2 на 1. Вызовите nexttile функция для создания объектов осей ax1 и ax2. Отобразите штриховой график в верхней оси. В нижних осях отобразите сложенный штриховой график тех же данных.

y = [1 2 3; 4 5 6];
tiledlayout(2,1)

% Top bar graph
ax1 = nexttile;
bar(ax1,y)

% Bottom bar graph
ax2 = nexttile;
bar(ax2,y,'stacked')

Figure contains 2 axes. Axes 1 contains 3 objects of type bar. Axes 2 contains 3 objects of type bar.

Создайте штриховой график с помощью красных штрихов.

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(y,'r')

Figure contains an axes. The axes contains an object of type bar.

Установите цвет интерьера панели и цвет контура с помощью триплетов RGB. Установите ширину контура штриха.

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(y,'FaceColor',[0 .5 .5],'EdgeColor',[0 .9 .9],'LineWidth',1.5)

Figure contains an axes. The axes contains an object of type bar.

Управление отдельными штриховыми цветами с помощью CData свойство Bar объект.

Создайте столбчатую диаграмму и присвойте Bar объект переменной. Установите FaceColor свойство Bar объект к 'flat' так, чтобы на графике использовались цвета, заданные в CData свойство. По умолчанию в CData свойство предварительно заполнено матрицей с цветовыми значениями RGB по умолчанию. Чтобы изменить конкретный цвет, измените соответствующую строку в матрице. Для примера измените цвет второй панели.

b = bar(rand(10,1));
b.FaceColor = 'flat';
b.CData(2,:) = [.5 0 .5];

Figure contains an axes. The axes contains an object of type bar.

Создайте столбчатую диаграмму, которая использует цвета палитры путем установки FaceColor свойство к 'flat'. Затем установите CData свойство для каждого Bar объект - целое число.

y = [1 3 5; 3 2 7; 3 4 2];
b = bar(y,'FaceColor','flat');
for k = 1:size(y,2)
    b(k).CData = k;
end

Figure contains an axes. The axes contains 3 objects of type bar.

Создайте матричные y, где каждый столбец является серией данных. Вызовите bar функция для отображения данных в гистограмме и определения выходного аргумента. Выход является вектором из трех Bar объекты, где каждый объект соответствует другому ряду. Это справедливо, сгруппированы ли полосы или сложены.

y = [10 15 20; 30 35 40; 50 55 62];
b = bar(y);

Figure contains an axes. The axes contains 3 objects of type bar.

Сделать третью серию брусков зеленой.

b(3).FaceColor = [.2 .6 .5];

Figure contains an axes. The axes contains 3 objects of type bar.

Входные параметры

свернуть все

x -кординаты, заданные как скаляр, вектор или матрица. Значения x не нужно быть в порядке, но размер x зависит от размера y и как вы хотите отобразить свои данные. В этой таблице описываются наиболее распространенные ситуации.

ПредставлениеКак задать X и YПример
Отображение одной серии полос.

Задайте x и y как векторы, которые имеют одинаковую длину. Значения в x должны быть уникальными, но значения в y не обязательно быть уникальным.

x = [1980 1990 2000];
y = [10 20 30];
bar(x,y)

Отображение нескольких серий полос в группах.

Задайте одну из следующих комбинаций:

  • Задайте x и y как матрицы равного размера. Каждый столбец y соответствует ряду полос. По умолчанию каждая серия является другим цветом. Чтобы гарантировать последовательное размещение групп, задайте столбцы x как идентичные векторы. Значения в столбце должны быть уникальными, даже если столбцы повторяются.

  • Задайте x как вектор уникальных значений и задайте y как матрица. Длина x должен равняться длине по крайней мере одной размерности y. Другая размерность y содержит значения для различных серий полос.

x = [1980 1980 1980
     1990 1990 1990];
y = [2 6 9
    11 22 32];
bar(x,y)
Или
x = [1980 1990];
y = [2 6 9
    11 22 32];
bar(x,y)

Отображение одной группы стержней с центром в одном x значение.

Задайте x как скаляр и y как вектор.

x = 1990;
y = [10 20 30];
bar(x,y)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

y -кординаты, заданные как скаляр, вектор или матрица. Размер y зависит от размера x и как вы хотите отобразить свои данные. В этой таблице описываются наиболее распространенные ситуации.

ПредставлениеКак задать X и YПример
Отображение одной серии полос.

Задайте x и y как векторы, которые имеют одинаковую длину. Значения в x должны быть уникальными, но значения в y не обязательно быть уникальным.

x = [1980 1990 2000];
y = [10 20 30];
bar(x,y)

Отображение нескольких серий полос в группах.

Задайте одну из следующих комбинаций:

  • Задайте x и y как матрицы равного размера. Каждый столбец y соответствует ряду полос. По умолчанию каждая серия является другим цветом. Чтобы гарантировать последовательное размещение групп, задайте столбцы x как идентичные векторы. Значения в столбце должны быть уникальными, даже если столбцы повторяются.

  • Задайте x как вектор уникальных значений и задайте y как матрица. Длина x должен равняться длине по крайней мере одной размерности y. Другая размерность y содержит значения для различных серий полос.

x = [1980 1980 1980
     1990 1990 1990];
y = [2 6 9
    11 22 32];
bar(x,y)
Или
x = [1980 1990];
y = [2 6 9
    11 22 32];
bar(x,y)

Отображение одной группы стержней с центром в одном x значение.

Задайте x как скаляр и y как вектор.

x = 1990;
y = [10 20 30];
bar(x,y)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | duration

Ширина бара, заданная в виде части общего пространства, доступного для каждого бара. Значение по умолчанию 0.8 означает, что ширина полосы составляет 80% от пробела от предыдущей полосы до следующей полосы с 10% этого пространства на каждой стороне.

Если ширина 1Затем бруски внутри группы касаются друг друга.

Пример: bar([1 2 3],0.5) создает панели, которые используют 50% доступного пространства.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Стиль группы, заданный одним из следующих значений.

СтильРезультатПример

'grouped'

Отображение каждой группы как смежных полос с центром вокруг соответствующих x значение.

'stacked'

Отобразите каждую группу как одну разноцветную полосу. Длина полосы является суммой элементов в группе.

Если y является вектором, тогда результат аналогичен 'grouped'.

'histc'

Отображение полос в формате гистограммы, в котором полоски в группе касаются друг друга. Конечное ребро каждой группы выровнено по соответствующему x значение.

Примечание

Лучший способ отобразить гистограмму - вызвать histogram функция.

'hist'

Отображение полос в формате гистограммы. Каждая группа центрируется в соответствующей x значение.

Примечание

Лучший способ отобразить гистограмму - вызвать histogram функция.

Штриховой цвет, заданный как один из цветов в этой таблице.

ЦветЦвет
'b'Синий
'r'Красный
'g'Зеленый
'c'Голубой
'm'Пурпурный
'y'Желтый
'k'Черный
'w'Белый

Объект осей. Если вы не задаете оси, то bar использует текущие системы координат для гистограммы.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: bar([10 20 30],'EdgeColor','g') задает зеленый контур вокруг полос.

The Bar перечисленные здесь свойства являются только подмножеством. Полный список см. в разделе Свойства панели.

Примечание

  • Перечисленные здесь свойства являются только подмножеством. Полный список см. в разделе Свойства панели.

  • Можно задать эти свойства только на гистограммах, которые используют значение по умолчанию 'grouped' или 'stacked' стиль.

Цвет контура, заданный как 'flat', триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое имя. Если баров 150 или меньше, значение по умолчанию [0 0 0], что соответствует черному. Если существует более 150 смежных полос, значение по умолчанию является 'none'.

Начиная с R2017b, 'flat' опция использует CData значения для окрашивания ребер. В предыдущих релизах 'flat' опция окрашила ребра, используя цвета из палитры.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный код цвета.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; для примера, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию MATLAB® использует на многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Пример: b = bar(1:10,'EdgeColor','red')

Пример: b.EdgeColor = [0 0.5 0.5];

Пример: b.EdgeColor = 'flat';

Пример: b.EdgeColor = '#D2F9A7';

Заливка цвета, заданная как 'flat', триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое имя. The 'flat' опция использует CData значение свойства Bar объект для окрашивания граней.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный код цвета.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; для примера, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Начиная с R2017b, значение по умолчанию является триплетом RGB от ColorOrder свойство осей. В предыдущих релизах значение по умолчанию было 'flat' и цвета были основаны на палитре.

Пример: b = bar(1:10,'FaceColor','red')

Пример: b.FaceColor = [0 0.5 0.5];

Пример: b.FaceColor = 'flat';

Пример: b.FaceColor = '#D2F9A7';

Данные о цвете, заданные как одно из следующих значений:

  • Триплет RGB - одно значение цвета RGB применяется ко всем полосам.

  • Трехколоночная матрица - Один цвет на бар. Каждая строка матрицы задает триплет RGB для определенной полосы.

  • Скаляр - Один цвет применяется ко всем полосам, где цвет исходит из палитры.

  • Вектор - Один цвет на бар. Цвета получаются из палитры.

По умолчанию, когда вы создаете столбчатую диаграмму, CData свойство содержит трехколоночную матрицу триплетов RGB. Вы можете изменить цвет для конкретной полосы путем изменения соответствующей строки в матрице.

Это свойство применяется только когда FaceColor или EdgeColor для свойства задано значение 'flat'.

Пример

Измените цвет для конкретной полосы путем установки FaceColor свойство к 'flat'. Затем измените соответствующую строку в CData матрица к новому триплету RGB. Для примера измените цвет второй панели.

b = bar(1:10,'FaceColor','flat');
b.CData(2,:) = [0 0.8 0.8];

Базовое значение, заданное как числовое скалярное значение.

Заданное значение базовой линии применяется либо к оси X, либо к оси Y в зависимости от ориентации столбчатой диаграммы. Если вы измените ориентацию столбчатой диаграммы с вертикальной на горизонтальную, или наоборот, значение базовой линии может измениться. Установите BaseValue свойство после установки Horizontal свойство.

Стиль линии линий, заданный как один из стилей линии в этой таблице.

Стиль линииСтиль линииРезультирующая линия
'-'Сплошная линия

'--'Штриховая линия

':'Пунктирная линия

'-.'Штрих-пунктирная линия

'none'Нет линииНет линии

Ширина контуров штриха, заданная как положительное значение в модули точки. Одна точка равна 1/72 дюйма.

Пример: 1.5

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Bar объекты. Используйте элементы в b для доступа и изменения свойств определенного Bar объект после создания. Количество Bar объекты зависят от размера y. Если y является вектором, тогда b является единым Bar объект. Если y является матрицей, тогда b - вектор, содержащий Bar объект для каждой серии в y.

Подробнее о

свернуть все

Серия штанг

Серия состоит из баров во всех местах в X для определенного набора данных. По умолчанию каждая серия полос обозначается другим цветом.

Группа стержней

Группа состоит из всех полос в определенном месте в X.

Расширенные возможности

Представлено до R2006a