histogram

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

Описание

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

Создание

Описание

пример

histogram(X) создает гистограмму графика X. The 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 и данных о длительности, edges должен быть вектором datetime или длительности в монотонно увеличивающемся порядке.

Типы данных: 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'

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

'integers'

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

Примечание

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

'sturges'

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

'sqrt'

Правило Квадратный корень широко используется в других программных пакетах. Он выбирает количество интервалов, которые будут 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 или длительность, затем histogram может использовать максимум 65 536 интервалов (или 216). Если заданная длительность интервала требует больше интервалов, то histogram использует большую ширину интервала, соответствующую максимальному количеству интервалов.

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

Примечание

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

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

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

Для данных datetime и данных о длительности, значение '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 или данные о длительности.

'cumcount'

vi=j=1icj

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

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

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

'probability'

vi=ciN

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

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

'pdf'

vi=ciNwi

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

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

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

Примечание

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

'cdf'

vi=j=1icjN

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

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

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

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

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

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

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

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

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

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

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

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

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

расширить все

Гистограмма, возвращенная как объект. Для получения дополнительной информации см. «Гистограмма Свойств».

Свойства

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

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

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

Примеры

свернуть все

Сгенерируйте 10000 случайных чисел и создайте гистограмму. The 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