exponenta event banner

гистограмма

График гистограммы

Описание

Гистограммы - это тип штрих-графика для числовых данных, которые группируют данные в ячейки. После создания Histogram можно изменить аспекты гистограммы, изменив ее значения свойств. Это особенно полезно для быстрого изменения свойств ячеек или изменения отображения.

Создание

Описание

пример

histogram(X) создает гистограмму графика X. histogram функция использует алгоритм автоматического объединения, который возвращает ячейки с одинаковой шириной, выбранные для охвата диапазона элементов в X и раскрыть основную форму распределения. histogram отображает ячейки в виде прямоугольников, так что высота каждого прямоугольника указывает количество элементов в ячейке.

пример

histogram(X,nbins) использует число ячеек, заданное скаляром, nbins.

пример

histogram(X,edges) виды X в ячейки с кромками ячеек, заданными вектором, edges. Каждая ячейка включает левую кромку, но не включает правую кромку, за исключением последней ячейки, которая включает обе кромки.

histogram('BinEdges',edges,'BinCounts',counts) вручную задает края ячеек и связанные с ними количества ячеек. histogram выводит на график указанное число ячеек и не выполняет гибку данных.

пример

histogram(C), где C - категориальный массив, строит гистограмму со столбцом для каждой категории в C.

histogram(C,Categories) отображает только подмножество категорий, указанных Categories.

histogram('Categories',Categories,'BinCounts',counts) вручную определяет категории и связанные с ними счетчики ячеек. histogram выводит на график указанное число ячеек и не выполняет гибку данных.

пример

histogram(___,Name,Value) указывает дополнительные параметры с одним или несколькими Name,Value пара аргументов с использованием любого из предыдущих синтаксисов. Например, можно указать 'BinWidth' и скаляр для регулировки ширины ячеек или 'Normalization' с допустимым параметром ('count', 'probability', 'countdensity', 'pdf', 'cumcount', или 'cdf') для использования другого типа нормализации. Список свойств см. в разделе Свойства гистограммы.

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

пример

h = histogram(___) возвращает Histogram объект. Используется для проверки и корректировки свойств гистограммы. Список свойств см. в разделе Свойства гистограммы.

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

развернуть все

Данные для распределения между ячейками, заданными как вектор, матрица или многомерный массив. Если X не является вектором, то histogram обрабатывает его как один вектор-столбец, X(:)и строит график одной гистограммы.

histogram игнорирует все NaN и NaT значения. Аналогично, histogram игнорирует Inf и -Inf значения, за исключением случаев явного указания ребер ячейки Inf или -Inf как ребро ячейки. Хотя NaN, NaT, Inf, и -Inf значения обычно не печатаются, они по-прежнему включаются в расчеты нормализации, которые включают общее количество элементов данных, таких как 'probability'.

Примечание

Если X содержит целые числа типа int64 или uint64 которые больше, чем flintmax, то рекомендуется явно указать границы ячейки гистограммы. histogram автоматически складывает входные данные, используя двойную точность, которой не хватает целочисленной точности для чисел, превышающих flintmax.

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

Категориальные данные, указанные как категориальный массив. histogram не строит график неопределенных категориальных значений. Однако неопределенные значения категорий по-прежнему включаются в расчеты нормализации, которые включают общее количество элементов данных, таких как 'probability'.

Типы данных: categorical

Количество ячеек, указанное как положительное целое число. Если не указать nbins, то histogram автоматически вычисляет количество используемых ячеек на основе значений в X.

Пример: histogram(X,15) создает гистограмму с 15 ячейками.

Ребра ячейки, заданные как вектор. edges(1) - левый край первой ячейки, и edges(end) является правым краем последней ячейки.

Стоимость X(i) находится в kth bin, если edges(k)X(i) < edges(k+1). Последняя ячейка также включает правую кромку ячейки, чтобы она содержала X(i) если edges(end-1)X(i)edges(end).

Для данных datetime и duration, edges должен быть вектором datetime или duration в монотонно возрастающем порядке.

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

Примечание

Этот параметр применяется только к категориальным гистограммам.

Категории, включенные в гистограмму, указанные как массив ячеек из векторов символов, категориальный массив или строковый массив.

  • Если задан входной категориальный массив C, то по умолчанию, histogram отображает полосу для каждой категории в C. В этом случае используйте Categories чтобы указать вместо этого уникальное подмножество категорий.

  • Если указать количество ячеек, то Categories указывает имена связанных категорий для гистограммы.

Пример: h = histogram(C,{'Large','Small'}) отображает только категориальные данные в категориях 'Large' и 'Small'.

Пример: histogram('Categories',{'Yes','No','Maybe'},'BinCounts',[22 18 3]) строит гистограмму, имеющую три категории со связанными счетчиками ячеек.

Пример: h.Categories запрашивает категории, находящиеся в объекте гистограммы h.

Типы данных: cell | categorical | string

Количество ячеек, указанное как вектор. Используйте этот ввод для передачи количества ячеек в histogram когда расчет количества ячеек выполняется отдельно, и вы не хотите histogram для выполнения любого объединения данных.

Длина counts должно быть равно количеству ячеек.

  • Для цифровых гистограмм количество ячеек равно length(edges)-1.

  • Для категориальных гистограмм количество ячеек равно количеству категорий.

Пример: histogram('BinEdges',-2:2,'BinCounts',[5 8 15 9])

Пример: histogram('Categories',{'Yes','No','Maybe'},'BinCounts',[22 18 3])

Целевые оси, указанные как Axes объект или PolarAxes объект. Если оси не заданы и если текущие оси декартовы, то histogram функция использует текущие оси (gca). Для вывода на печать полярных осей задайте PolarAxes объект в качестве первого входного аргумента или используйте polarhistogram функция.

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

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

Пример: histogram(X,'BinWidth',5)

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

Примечание

Этот параметр применяется только к гистограммам категориальных данных.

Относительная ширина категориальных полос, заданная как скалярное значение в диапазоне [0,1]. Это свойство используется для управления разделением категориальных полос в гистограмме. Значение по умолчанию: 0.9, что означает, что ширина полосы составляет 90% пространства от предыдущей полосы до следующей полосы, с 5% этого пространства с каждой стороны.

Если для этого свойства задано значение 1затем прилегающие бруски соприкасаются.

Пример: 0.5

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

Пределы ячейки, заданные как двухэлементный вектор, [bmin,bmax]. Эта опция отображает гистограмму с использованием значений во входном массиве. X, которые попадают между bmin и bmax включительно. То есть X(X>=bmin & X<=bmax).

Этот параметр не применяется к гистограммам категориальных данных.

Пример: histogram(X,'BinLimits',[1,10]) строит гистограмму, используя только значения в X которые находятся между 1 и 10 включительно.

Режим выбора для пределов ячейки, указанный как 'auto' или 'manual'. Значение по умолчанию: 'auto', так что пределы ячейки автоматически подстраиваются под данные.

Если явно указать либо BinLimits или BinEdges, то BinLimitsMode автоматически устанавливается в значение 'manual'. В этом случае укажите BinLimitsMode как 'auto' для масштабирования лимитов ячейки в данных.

Этот параметр не применяется к гистограммам категориальных данных.

Алгоритм объединения, указанный как одно из значений в этой таблице.

Стоимость

Описание

'auto'

Дефолт 'auto' алгоритм выбирает ширину ячейки для охвата диапазона данных и выявления формы нижележащего распределения.

'scott'

Правило Скотта оптимально, если данные близки к нормальному распределению. Это правило также подходит для большинства других распределений. Используется ширина ячейки 3.5*std(X(:))*numel(X)^(-1/3).

'fd'

Правило Freedman-Diaconis менее чувствительно к отклонениям в данных и может быть более подходящим для данных с тяжелохвостыми распределениями. Используется ширина ячейки 2*IQR(X(:))*numel(X)^(-1/3), где IQR - межквартильный диапазон X.

'integers'

Целочисленное правило полезно использовать с целочисленными данными, поскольку оно создает бин для каждого целого. Он использует ширину ячейки 1 и размещает кромки ячейки на полпути между целыми числами. Чтобы избежать случайного создания слишком большого количества ячеек, можно использовать это правило для создания ограничения 65536 ячеек (216). Если диапазон данных больше 65536, то в целочисленном правиле вместо этого используются более широкие ячейки.

Примечание

'integers' не поддерживает данные datetime или duration.

'sturges'

Правило Стерджеса популярно благодаря своей простоте. Выбирается количество ячеек ceil(1 + log2(numel(X))).

'sqrt'

Правило Square Root широко используется в других программных пакетах. Выбирается количество ячеек ceil(sqrt(numel(X))).

histogram не всегда выбирает количество ячеек по этим точным формулам. Иногда количество ячеек немного регулируется так, что края ячеек попадают на «хорошие» числа.

Для данных datetime метод bin может быть одной из следующих единиц времени:

'second''month'
'minute''quarter'
'hour''year'
'day''decade'
'week''century'

Для данных длительности метод bin может быть одной из следующих единиц времени:

'second''day'
'minute''year'
'hour' 

При указании BinMethod с данными datetime или duration, затем histogram может использовать максимум 65 536 ячеек (или 216). Если указанная длительность ячейки требует больше ячеек, то histogram использует большую ширину ячейки, соответствующую максимальному количеству ячеек.

Этот параметр не применяется к гистограммам категориальных данных.

Примечание

Если установить BinLimits, NumBins, BinEdges, или BinWidth свойство, затем BinMethod свойство имеет значение 'manual'.

Пример: histogram(X,'BinMethod','integers') создает гистограмму с ячейками, расположенными по центру целых чисел.

Ширина ячеек, заданная как скаляр. При указании BinWidth, то histogram может использовать максимум 65 536 ячеек (или 216). Если вместо этого для указанной ширины ячейки требуется больше ячеек, то histogram использует большую ширину ячейки, соответствующую максимальному количеству ячеек.

Для данных datetime и duration значение 'BinWidth' может быть скалярной длительностью или длительностью календаря.

Этот параметр не применяется к гистограммам категориальных данных.

Пример: histogram(X,'BinWidth',5) использует ячейки шириной 5.

Порядок отображения категории, указанный как 'ascend', 'descend', или 'data'. С 'ascend' или 'descend'гистограмма отображается с увеличением или уменьшением высоты полосы. Дефолт 'data' значение использует порядок категорий во входных данных, C.

Этот параметр работает только с категориальными данными.

Стиль отображения гистограммы, указанный как 'bar' или 'stairs'. Определить 'stairs' отображение графика лестницы, на котором отображается контур гистограммы без заполнения интерьера.

Значение по умолчанию 'bar' отображает штрих-график гистограммы.

Пример: histogram(X,'DisplayStyle','stairs') строит график гистограммы.

Прозрачность ребер гистограммы, заданная как скалярное значение между 0 и 1 включительно. Значение 1 означает полностью непрозрачный и 0 означает полностью прозрачный (невидимый).

Пример: histogram(X,'EdgeAlpha',0.5) создает график гистограммы с полупрозрачными краями полос.

Цвет края гистограммы, указанный как одно из следующих значений:

  • 'none' - Кромки не нарисованы.

  • 'auto' - Цвет каждого края выбирается автоматически.

  • Триплет RGB, шестнадцатеричный код цвета или имя цвета - ребра используют указанный цвет.

    Триплеты 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'

    Вот триплеты 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'

Пример: histogram(X,'EdgeColor','r') создает график гистограммы с красными краями полос.

Прозрачность гистограмм, заданная как скалярное значение между 0 и 1 включительно. histogram использует одинаковую прозрачность для всех полос гистограммы. Значение 1 означает полностью непрозрачный и 0 означает полностью прозрачный (невидимый).

Пример: histogram(X,'FaceAlpha',1) создает график гистограммы с полностью непрозрачными полосами.

Цвет полосы гистограммы, указанный как одно из следующих значений:

  • 'none' - Бруски не заполнены.

  • 'auto' - Цвет полосы гистограммы выбирается автоматически (по умолчанию).

  • Триплет RGB, шестнадцатеричный код цвета или имя цвета - столбцы заполняются указанным цветом.

    Триплеты 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'

    Вот триплеты 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'

При указании DisplayStyle как 'stairs', то histogram не использует FaceColor собственность.

Пример: histogram(X,'FaceColor','g') создает график гистограммы с зелеными полосами.

Стиль линии, указанный в качестве одного из параметров, перечисленных в этой таблице.

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

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

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

'-.'Пунктирная линия

'none'Без строкиБез строки

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

Пример: 1.5

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

Тип нормализации, указанный как одно из значений в этой таблице. Для каждой ячейки i:

  • vi - значение ячейки.

  • ci - количество элементов в ячейке.

  • wi - ширина бункера.

  • N - количество элементов во входных данных. Это значение может быть больше, чем привязанные данные, если данные содержат NaN, NaT, или <undefined> значения или, если часть данных находится за пределами ячейки.

СтоимостьЗначения ячейкиПримечания
'count' (по умолчанию)

vi = ci

  • Количество или частота наблюдений.

  • Сумма значений ячейки меньше или равна numel(X). Сумма меньше numel(X) только в том случае, если часть входных данных не включена в ячейки.

  • Для категориальных данных сумма значений ячеек меньше или равна numel(X) или sum(ismember(X(:),Categories)).

'countdensity'

vi = ciwi

  • Число или частота, масштабированные по ширине ячейки.

  • Площадь (высота * ширина) каждой полосы - это количество наблюдений в ячейке. Сумма областей полосы меньше или равна numel(X).

  • Для категориальных гистограмм это то же самое, что 'count'.

Примечание

'countdensity' не поддерживает данные datetime или duration.

'cumcount'

vi=∑j=1icj

  • Кумулятивный подсчет. Каждое значение ячейки - это совокупное количество наблюдений в этой ячейке и во всех предыдущих ячейках.

  • Высота последней полосы меньше или равна numel(X).

  • Для категориальных гистограмм высота последней планки меньше или равна numel(X) или sum(ismember(X(:),Categories)).

'probability'

vi = ciN

  • Относительная вероятность.

  • Сумма высот стержней меньше или равна 1.

'pdf'

vi = ciN wi

  • Оценка функции плотности вероятности.

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

  • Для категориальных гистограмм это то же самое, что 'probability'.

Примечание

'pdf' не поддерживает данные datetime или duration.

'cdf'

vi=∑j=1i cjN

  • Оценка кумулятивной функции плотности.

  • Высота каждой панели равна совокупному относительному количеству наблюдений в ячейке и во всех предыдущих ячейках. Высота последней полосы меньше или равна 1.

  • Для категориальных данных высота каждой планки равна совокупному относительному количеству наблюдений в каждой категории и всех предыдущих категориях.

Пример: histogram(X,'Normalization','pdf') строит график оценки функции плотности вероятности для X.

Количество отображаемых категорий, указанных как скаляр. Можно изменить порядок категорий, отображаемых в гистограмме, с помощью 'DisplayOrder' вариант.

Этот параметр работает только с категориальными данными.

Ориентация стержней, указанная как 'vertical' или 'horizontal'.

Пример: histogram(X,'Orientation','horizontal') создает график гистограммы с горизонтальными полосами.

Переключение отображения сводки данных, относящихся к неотображаемым категориям, указанным как 'on' или 'off'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

Установите для этой опции значение 'on' для отображения дополнительной полосы в гистограмме с именем 'Others'. Эта дополнительная полоса подсчитывает все элементы, которые не относятся к категориям, отображаемым в гистограмме.

Можно изменить количество категорий, отображаемых в гистограмме, а также их порядок, используя 'NumDisplayBins' и 'DisplayOrder' варианты.

Этот параметр работает только с категориальными данными.

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

развернуть все

Гистограмма, возвращенная как объект. Дополнительные сведения см. в разделе Свойства гистограммы.

Свойства

Свойства гистограммыВнешний вид и поведение гистограммы

Функции объекта

morebinsУвеличение количества ячеек гистограммы
fewerbinsУменьшение количества ячеек гистограммы

Примеры

свернуть все

Создайте 10 000 случайных чисел и гистограмму. histogram функция автоматически выбирает соответствующее количество ячеек для охвата диапазона значений в x и показать форму нижележащего распределения.

x = randn(10000,1);
h = histogram(x)

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

h = 
  Histogram with properties:

             Data: [10000x1 double]
           Values: [1x37 double]
          NumBins: 37
         BinEdges: [1x38 double]
         BinWidth: 0.2000
        BinLimits: [-3.8000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

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

Найдите количество ячеек гистограммы.

nbins = h.NumBins
nbins = 37

Постройте гистограмму из 1000 случайных чисел, отсортированных на 25 равноотстоящих ячеек.

x = randn(1000,1);
nbins = 25;
h = histogram(x,nbins)

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [1x25 double]
          NumBins: 25
         BinEdges: [1x26 double]
         BinWidth: 0.2800
        BinLimits: [-3.4000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

Найдите количество ячеек.

counts = h.Values
counts = 1×25

     1     3     0     6    14    19    31    54    74    80    92   122   104   115    88    80    38    32    21     9     5     5     5     0     2

Создайте 1000 случайных чисел и гистограмму.

X = randn(1000,1);
h = histogram(X)

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [1x23 double]
          NumBins: 23
         BinEdges: [1x24 double]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

Используйте morebins функция для грубой корректировки количества ячеек.

Nbins = morebins(h);
Nbins = morebins(h)

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

Nbins = 29

Отрегулируйте ячейки на уровне мелкого зерна, явно установив количество ячеек.

h.NumBins = 31;

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

Создайте 1000 случайных чисел и гистограмму. Укажите края ячейки как вектор с широкими ячейками на краях гистограммы, чтобы зафиксировать отклонения, которые не удовлетворяют | x | < 2. Первый векторный элемент является левым краем первого элемента, а последний векторный элемент является правым краем последнего элемента.

x = randn(1000,1);
edges = [-10 -2:0.25:2 10];
h = histogram(x,edges);

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

Укажите Normalization свойство как 'countdensity' чтобы выровнять ячейки, содержащие отклонения. Теперь площадь каждого элемента (а не высота) представляет частоту наблюдений в этом интервале.

h.Normalization = 'countdensity';

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

Создайте категориальный вектор, представляющий голоса. Категории в векторе: 'yes', 'no', или 'undecided'.

A = [0 0 1 1 1 0 0 0 0 NaN NaN 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1];
C = categorical(A,[1 0 NaN],{'yes','no','undecided'})
C = 1x27 categorical
  Columns 1 through 9

     no      no      yes      yes      yes      no      no      no      no 

  Columns 10 through 16

     undecided      undecided      yes      no      no      no      yes 

  Columns 17 through 25

     no      yes      no      yes      no      no      no      yes      yes 

  Columns 26 through 27

     yes      yes 

Постройте категориальную гистограмму голосов, используя относительную ширину полосы 0.5.

h = histogram(C,'BarWidth',0.5)

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

h = 
  Histogram with properties:

              Data: [1x27 categorical]
            Values: [11 14 2]
    NumDisplayBins: 3
        Categories: {'yes'  'no'  'undecided'}
      DisplayOrder: 'data'
     Normalization: 'count'
      DisplayStyle: 'bar'
         FaceColor: 'auto'
         EdgeColor: [0 0 0]

  Show all properties

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

x = randn(1000,1);
h = histogram(x,'Normalization','probability')

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [1x23 double]
          NumBins: 23
         BinEdges: [1x24 double]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'probability'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

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

S = sum(h.Values)
S = 1

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

x = randn(2000,1);
y = 1 + randn(5000,1);
h1 = histogram(x);
hold on
h2 = histogram(y);

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

Поскольку размер выборки и ширина ячейки гистограмм различны, их трудно сравнить. Нормализуйте гистограммы так, чтобы все высоты полос прибавляли к 1, и используйте равномерную ширину ячейки.

h1.Normalization = 'probability';
h1.BinWidth = 0.25;
h2.Normalization = 'probability';
h2.BinWidth = 0.25;

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

Создайте 1000 случайных чисел и гистограмму. Возврат объекта гистограммы для корректировки свойств гистограммы без повторного создания всего графика.

x = randn(1000,1);
h = histogram(x)

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [1x23 double]
          NumBins: 23
         BinEdges: [1x24 double]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

Укажите, сколько именно ячеек следует использовать.

h.NumBins = 15;

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

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

h.BinEdges = [-3:3];

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

Измените цвет полос гистограммы.

h.FaceColor = [0 0.5 0.5];
h.EdgeColor = 'r';

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

Создайте 5000 нормально распределенных случайных чисел со средним значением 5 и стандартным отклонением 2. Постройте гистограмму с помощью Normalization установить в значение 'pdf' получение оценки функции плотности вероятности.

x = 2*randn(5000,1) + 5;
histogram(x,'Normalization','pdf')

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

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

Функция плотности вероятности для нормального распределения со средним λ, среднеквадратическим отклонением λ, и дисперсией λ 2 равна

f (x, μ)  =1σ2π exp [-(x-μ) 22σ2].

Наложите график функции плотности вероятности для нормального распределения со средним значением 5 и стандартным отклонением 2.

hold on
y = -5:0.1:15;
mu = 5;
sigma = 2;
f = exp(-(y-mu).^2./(2*sigma^2))./(sigma*sqrt(2*pi));
plot(y,f,'LineWidth',1.5)

Figure contains an axes. The axes contains 2 objects of type histogram, line.

Используйте savefig функция для сохранения histogram фигуру.

histogram(randn(10));
savefig('histogram.fig');
close gcf

Использовать openfig для загрузки изображения гистограммы обратно в MATLAB. openfig также возвращает маркер к фигуре, h.

h = openfig('histogram.fig');

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

Используйте findobj для поиска правильного дескриптора объекта из дескриптора фигуры. Это позволяет продолжать манипулировать исходным объектом гистограммы, используемым для создания фигуры.

y = findobj(h,'type','histogram')
y = 
  Histogram with properties:

             Data: [10x10 double]
           Values: [2 17 28 32 16 3 2]
          NumBins: 7
         BinEdges: [-3 -2 -1 0 1 2 3 4]
         BinWidth: 1
        BinLimits: [-3 4]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

Совет

  • Гистограммы, созданные с помощью histogram имеют контекстное меню в режиме редактирования печати, которое позволяет выполнять интерактивные манипуляции в окне рисунка. Например, можно использовать контекстное меню для интерактивного изменения количества ячеек, выравнивания нескольких гистограмм или изменения порядка отображения.

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

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

Представлен в R2014b