histogram

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

Описание

Гистограммы являются типом столбиковой диаграммы для числовых данных, которые группируют данные в интервалы. После того, как вы создаете 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 Properties.

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

пример

h = histogram(___) возвращает Histogram объект. Используйте это, чтобы смотреть и настроить свойства гистограммы. Для списка свойств смотрите Histogram Properties.

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

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

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

histogram игнорирует весь NaN и NaT значения. Точно так же histogram игнорирует Inf и -Inf значения, если границы интервала явным образом не задают Inf или -Inf как граница интервала. Несмотря на то, что NaNNATInf, и -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) находится в kинтервал th, если 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)

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

Примечание

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

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

Примечание

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

'sturges'

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

'sqrt'

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

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

Для данных о datetime метод интервала может быть одним из этих модулей времени:

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

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

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

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

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

Примечание

Если вы устанавливаете BinLimitsNumBins 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'

    Sample of the color red

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

    Sample of the color green

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

    Sample of the color blue

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

    Sample of the color cyan

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

    Sample of the color magenta

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

    Sample of the color yellow

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

    Sample of the color black

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

    Sample of the color white

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

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

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980]'#D95319'

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250]'#EDB120'

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560]'#7E2F8E'

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880]'#77AC30'

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330]'#4DBEEE'

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840]'#A2142F'

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

Пример: 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'

    Sample of the color red

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

    Sample of the color green

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

    Sample of the color blue

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

    Sample of the color cyan

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

    Sample of the color magenta

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

    Sample of the color yellow

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

    Sample of the color black

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

    Sample of the color white

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

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

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980]'#D95319'

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250]'#EDB120'

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560]'#7E2F8E'

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880]'#77AC30'

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330]'#4DBEEE'

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840]'#A2142F'

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

Если вы задаете DisplayStyle как 'stairs'то histogram не использует FaceColor свойство.

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

Стиль линии в виде одной из опций перечислен в этой таблице.

Стиль линииОписаниеПолучившаяся линия
'-'Сплошная линия

Sample of solid line

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

Sample of dashed line

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

Sample of dotted line

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

Sample of dash-dotted line, with alternating dashes and dots

'none'Никакая линияНикакая линия

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

Пример: 1.5

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

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

  • vi значение интервала.

  • ci число элементов в интервале.

  • wi ширина интервала.

  • N число элементов во входных данных. Это значение может быть больше сгруппированных данных, если данные содержат NaNNAT, или <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 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

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

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

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

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

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

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

Свойства

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

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

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

Примеры

свернуть все

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

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

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

h = 
  Histogram with properties:

             Data: [10000x1 double]
           Values: [2 2 1 6 7 17 29 57 86 133 193 271 331 421 540 613 ... ]
          NumBins: 37
         BinEdges: [-3.8000 -3.6000 -3.4000 -3.2000 -3 -2.8000 -2.6000 ... ]
         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

Постройте гистограмму 1 000 случайных чисел, отсортированных в 25 равномерно распределенных интервалов.

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

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [1 3 0 6 14 19 31 54 74 80 92 122 104 115 88 80 38 32 ... ]
          NumBins: 25
         BinEdges: [-3.4000 -3.1200 -2.8400 -2.5600 -2.2800 -2 -1.7200 ... ]
         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

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

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

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [3 1 2 15 17 27 53 79 85 101 127 110 124 95 67 32 27 ... ]
          NumBins: 23
         BinEdges: [-3.3000 -3.0000 -2.7000 -2.4000 -2.1000 -1.8000 ... ]
         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 object. The axes object contains an object of type histogram.

Nbins = 29

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

h.NumBins = 31;

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

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

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

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

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

h.Normalization = 'countdensity';

Figure contains an axes object. The axes object 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 object. The axes object contains an object of type categoricalhistogram.

h = 
  Histogram with properties:

              Data: [no    no    yes    yes    yes    no    no    ...    ]
            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

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

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

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [0.0030 1.0000e-03 0.0020 0.0150 0.0170 0.0270 0.0530 ... ]
          NumBins: 23
         BinEdges: [-3.3000 -3.0000 -2.7000 -2.4000 -2.1000 -1.8000 ... ]
         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 object. The axes object 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 object. The axes object contains 2 objects of type histogram.

Сгенерируйте 1 000 случайных чисел и создайте гистограмму. Возвратите объект гистограммы настроить свойства гистограммы, не воссоздавая целый график.

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

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [3 1 2 15 17 27 53 79 85 101 127 110 124 95 67 32 27 ... ]
          NumBins: 23
         BinEdges: [-3.3000 -3.0000 -2.7000 -2.4000 -2.1000 -1.8000 ... ]
         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 object. The axes object contains an object of type histogram.

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

h.BinEdges = [-3:3];

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

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

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

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

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

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

Figure contains an axes object. The axes object 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 object. The axes object 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 object. The axes object 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