barh

Горизонтальный столбчатый график

Описание

пример

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

пример

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

пример

barh(___,width) задает долю доступного пространства, занимаемую каждой полосой. Для примера, barh(y,1) заставляет штанги в каждой группе соприкасаться друг с другом. Задайте width как последний аргумент в любом из предыдущих синтаксисов.

пример

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

пример

barh(___,color) задает один цвет для всех полос. Для примера, barh(y,'red') отображает красные полосы.

пример

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

пример

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

пример

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

Примеры

свернуть все

Создайте вектор с четырьмя значениями. Отображение значений в гистограмме с одной горизонтальной полосой для каждого значения.

y = [10 20 30 41];
barh(y)

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

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

x = [1980 1990 2000];
y = [40 50 63 52; 42 55 50 48; 30 20 44 40];
barh(x,y)
xlabel('Snowfall')
ylabel('Year')
legend({'Springfield','Fairview','Bristol','Jamesville'})

Figure contains an axes. The axes contains 4 objects of type bar. These objects represent Springfield, Fairview, Bristol, Jamesville.

Создайте матричные y. Затем отобразите значения y в гистограмме с базовым значением 25. Значения, которые меньше 25 отображение в левой части базовой линии.

y = [8 15 33; 30 35 40; 50 55 62];
barh(y,'BaseValue',25)

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];
barh(x,y,'stacked')

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

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

y = [10 20 30 41];
barh(y)
yticklabels({'April','May','June','July'})

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

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

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

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

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

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

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

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

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

xtips1 = b(1).YEndPoints + 0.3;
ytips1 = b(1).XEndPoints;
labels1 = string(b(1).YData);
text(xtips1,ytips1,labels1,'VerticalAlignment','middle')

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

Затем выполните те же действия, чтобы отобразить метки в советах второй серии полос.

xtips2 = b(2).YEndPoints + 0.3;
ytips2 = b(2).XEndPoints;
labels2 = string(b(2).YData);
text(xtips2,ytips2,labels2,'VerticalAlignment','middle')

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

Создайте и отобразите данные в горизонтальном столбчатом графике, который имеет красные штрихи с толщиной 0.4.

y = [10 22 30 42];
width = 0.4;
barh(y,width,'red');

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

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

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

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

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

b(2).FaceColor = [.2 .6 .5];
b(2).EdgeColor = [.63 .08 .18];
b(2).LineWidth = 2;

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

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

x = [1980 1990 2000];
y = [8 15 25; 30 35 40; 50 55 62];

% Grouped
tiledlayout(2,1);
ax1 = nexttile;
barh(ax1,x,y)
title('Grouped Style')

% Stacked
ax2 = nexttile;
barh(ax2,x,y,'stacked')
title('Stacked Style')

Figure contains 2 axes. Axes 1 with title Grouped Style contains 3 objects of type bar. Axes 2 with title Stacked Style contains 3 objects of type bar.

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

свернуть все

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

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

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

x = [1980 1990 2000];
y = [10 20 30];
barh(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];
barh(x,y)
Или
x = [1980 1990];
y = [2 6 9
    11 22 32];
barh(x,y)

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

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

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

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

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

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

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

x = [1980 1990 2000];
y = [10 20 30];
barh(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];
barh(x,y)
Или
x = [1980 1990];
y = [2 6 9
    11 22 32];
barh(x,y)

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

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

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

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

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

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

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

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

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

'grouped'

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

'stacked'

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

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

'histc'

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

Примечание

Лучший способ отобразить горизонтальную гистограмму - вызвать histogram и задайте Orientation аргумент пары "имя-значение".

'hist'

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

Примечание

Лучший способ отобразить горизонтальную гистограмму - вызвать histogram и задайте Orientation аргумент пары "имя-значение".

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

ОпцииОписание
'blue' или 'b'Синий
'red' или 'r'Красный
'green' или 'g'Зеленый
'cyan' или 'c'Голубой
'magenta' или 'm'Пурпурный
'yellow' или 'y'Желтый
'black' или 'k'Черный
'white' или 'w'Белый

Пример: barh([10 20 30],'r') создает набор красных полос.

Целевые оси, заданные как Axes объект. Если вы не задаете оси, то штриховой график отображается в текущей системе координат.

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

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

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

Примечание

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

  • Можно задать эти свойства только на гистограммах, которые используют значение по умолчанию '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';

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

Пример: 1.5

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

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

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

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

свернуть все

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

Подробнее о

свернуть все

Серия штанг

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

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

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

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

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