exponenta event banner

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 как категориальный массив. 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, шестнадцатеричный цветовой код, имя цвета или короткое имя. '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