histogram2

Двухмерный график гистограммы

Описание

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

Создание

Описание

пример

histogram2(X,Y) создает двухмерный гистограммный график X и Y. The histogram2 функция использует алгоритм автоматического раскладывания, который возвращает интервалы с равномерной областью, выбранной для покрытия области значений элементов в X и Y и выявить базовую форму распределения. histogram2 отображает интервалы как прямоугольные 3-D таким образом, чтобы высота каждой панели указывала количество элементов в интервале.

пример

histogram2(X,Y,nbins) задает количество интервалов для использования в каждой размерности гистограммы.

пример

histogram2(X,Y,Xedges,Yedges) определяет ребра интервалов в каждой размерности с помощью векторов Xedges и Yedges.

histogram2('XBinEdges',Xedges,'YBinEdges',Yedges,'BinCounts',counts) вручную задает количество интервалов. histogram2 строит графики указанного количества интервалов и не делает никакого раскладывания данных.

пример

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

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

пример

h = histogram2(___) возвращает Histogram2 объект. Используйте это, чтобы просмотреть и настроить свойства двухмерной гистограммы. Список свойств см. в разделе Histogram2 свойств.

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

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

Данные для распределения между интервалами, заданные как отдельные аргументы векторов, матриц или многомерных массивов. X и Y должен быть одинаковым размером. Если X и Y не являются векторами, тогда histogram2 рассматривает их как одинарные векторы-столбцы, X(:) и Y(:), и строит одну гистограмму.

Соответствующие элементы в X и Y задайте x и y координаты 2D данных точек, [X(k),Y(k)]. Типы данных X и Y может быть различным, но histogram2 объединяет эти входы в одну N-by- 2 матрица доминирующего типа данных.

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

Примечание

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

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

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

  • Если nbins является скаляром, тогда histogram2 использует это множество интервалов в каждой размерности.

  • Если nbins является вектором, тогда nbins(1) задает количество интервалов в x -размерность и nbins(2) задает количество интервалов в y -размерности.

Пример: histogram2(X,Y,20) использует по 20 интервалов в каждой размерности.

Пример: histogram2(X,Y,[10 20]) использует 10 интервалов в x-размерность и 20 интервалов в y-размерность.

Границы интервала по x-размеру, заданные как вектор. Xedges(1) является первым ребром первого интервала по x-размеру и Xedges(end) является внешним краем последнего интервала.

Значение [X(k),Y(k)] находится в (i,j)th bin, если Xedges(i)X(k) <Xedges(i+1) и Yedges(j)Y(k) <Yedges(j+1). Последние интервалы в каждой размерности также включают последнее (внешнее) ребро. Для примера, [X(k),Y(k)] падает в ith bin в последней строке, если Xedges(end-1)X(k)Xedges(end) и Yedges(i)Y(k) <Yedges(i+1).

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

Границы интервала по y-размеру, заданные как вектор. Yedges(1) является первым ребром первого интервала по y-размеру и Yedges(end) является внешним краем последнего интервала.

Значение [X(k),Y(k)] находится в (i,j)th bin, если Xedges(i)X(k) <Xedges(i+1) и Yedges(j)Y(k) <Yedges(j+1). Последние интервалы в каждой размерности также включают последнее (внешнее) ребро. Для примера, [X(k),Y(k)] падает в ith bin в последней строке, если Xedges(end-1)X(k)Xedges(end) и Yedges(i)Y(k) <Yedges(i+1).

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

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

counts должна быть матрицей размера [length(XBinEdges)-1 length(YBinEdges)-1] таким образом задается количество интервалов для каждого интервала.

Пример: histogram2('XBinEdges',-1:1,'YBinEdges',-2:2,'BinCounts',[1 2 3 4; 5 6 7 8])

Объект осей. Если вы не задаете оси, то histogram2 функция использует текущие системы координат (gca).

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

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

Пример: histogram2(X,Y,'BinWidth',[5 10])

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

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

ЗначениеОписание
'auto'

Значение по умолчанию 'auto' алгоритм выбирает ширину интервала, чтобы охватить диапазон данных и показать форму базового распределения.

'scott'

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

'fd'

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

'integers'

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

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

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

Примечание

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

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

Ширина интервалов в каждой размерности, заданная как двухэлементный вектор положительных целых чисел, [xWidth yWidth].

Если вы задаете BinWidth, затем histogram2 может использовать максимум 1024 интервала (210) вдоль каждой размерности. Если вместо этого заданная ширина интервала требует больше интервалов, то histogram2 использует большую ширину интервала, соответствующую максимальному количеству интервалов.

Пример: histogram2(X,Y,'BinWidth',[5 10]) использует интервалы с размером 5 в x-размерность и размер 10 в y-размерность.

Стиль отображения гистограммы, заданный как 'bar3' или 'tile'. Задайте 'tile' отображение гистограммы как прямоугольного массива плиток с цветами, указывающими значения интервала.

Значение по умолчанию 'bar3' отображает гистограмму с использованием 3-D полос.

Пример: histogram2(X,Y,'DisplayStyle','tile') строит гистограмму как прямоугольный массив плиток.

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

Пример: histogram2(X,Y,'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'

Пример: histogram2(X,Y,'EdgeColor','r') создает 3-D гистограмму, график с красными ребрами.

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

Пример: histogram2(X,Y,'FaceAlpha',0.5) создает двухмерный график гистограммы с полупрозрачными полосами.

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

  • 'none' - Штанги не заполнены.

  • 'flat' - Цвета баров варьируются в зависимости от высоты. Бары с разной высотой имеют разные цвета. Цвета выбираются из рисунка или осей.

  • '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', затем histogram2 не использует FaceColor свойство.

Пример: histogram2(X,Y,'FaceColor','g') создает 3-D гистограмму, график с зелеными полосами.

Эффект освещения на полосах гистограммы, заданный как одно из значений в этой таблице.

ЗначениеОписание
'lit'

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

Это значение по умолчанию, когда DisplayStyle является 'bar3'.

'flat'

Гистограммы не освещаются автоматически. При наличии других световых объектов эффект подсветки равномерен по граням стержня.

'none'

Гистограммы не освещаются автоматически, и огни не влияют на гистограммы.

FaceLighting можно только 'none' когда DisplayStyle является 'tile'.

Пример: histogram2(X,Y,'FaceLighting','none') отключает подсветку полос гистограммы.

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

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

'--'Штриховая линия

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

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

'none'Нет линииНет линии

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

Пример: 1.5

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

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

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

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

  • Ai=wxiwyi - площадь каждого интервала, вычисленная с помощью x и y интервалов.

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

ЗначениеЗначения в интервалеПримечания
'count' (по умолчанию)

vi=ci

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

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

'countdensity'

vi=ciAi

  • Счетчик или частота, масштабируемая по площади интервала.

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

'cumcount'

vi=j=1icj

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

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

'probability'

vi=ciN

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

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

'pdf'

vi=ciNAi

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

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

'cdf'

vi=j=1icjN

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

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

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

Включите отображение пустых интервалов, заданное как 'off' или 'on'. Значение по умолчанию 'off'.

Пример: histogram2(X,Y,'ShowEmptyBins','on') включает отображение пустых интервалов.

Пределы интервала в x -размерности, заданные как двухэлементный вектор, [xbmin,xbmax]. Вектор указывает первые и последние границы интервала в x -размерности.

histogram2 строит графики только тех данных, которые попадают в пределы интервала включительно, Data(Data(:,1)>=xbmin & Data(:,1)<=xbmax).

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

Если вы явным образом задаете XBinLimits или XBinEdges, затем XBinLimitsMode автоматически устанавливается на 'manual'. В этом случае задайте XBinLimitsMode как 'auto' для пересмотра пределов интервала по данным.

Пределы интервала в y -размерности, заданные как двухэлементный вектор, [ybmin,ybmax]. Вектор указывает первые и последние границы интервала в y -размерности.

histogram2 строит графики только тех данных, которые попадают в пределы интервала включительно, Data(Data(:,2)>=ybmin & Data(:,2)<=ybmax).

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

Если вы явным образом задаете YBinLimits или YBinEdges, затем YBinLimitsMode автоматически устанавливается на 'manual'. В этом случае задайте YBinLimitsMode как 'auto' для пересмотра пределов интервала по данным.

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

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

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

Свойства

Histogram2 PropertiesHistogram2 внешний вид и поведение

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

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

Примеры

свернуть все

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

x = randn(10000,1);
y = randn(10000,1);
h = histogram2(x,y)
h = 
  Histogram2 with properties:

             Data: [10000x2 double]
           Values: [25x28 double]
          NumBins: [25 28]
        XBinEdges: [1x26 double]
        YBinEdges: [1x29 double]
         BinWidth: [0.3000 0.3000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Show all properties

xlabel('x')
ylabel('y')

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

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

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

nXnY = h.NumBins
nXnY = 1×2

    25    28

Постройте двухмерную гистограмму из 1000 пар случайных чисел, отсортированную в 25 равномерно расположенных интервалов, используя 5 интервалов в каждой размерности.

x = randn(1000,1);
y = randn(1000,1);
nbins = 5;
h = histogram2(x,y,nbins)

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

h = 
  Histogram2 with properties:

             Data: [1000x2 double]
           Values: [5x5 double]
          NumBins: [5 5]
        XBinEdges: [-4 -2.4000 -0.8000 0.8000 2.4000 4]
        YBinEdges: [-4 -2.4000 -0.8000 0.8000 2.4000 4]
         BinWidth: [1.6000 1.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Show all properties

Найдите результирующие количества интервалов.

counts = h.Values
counts = 5×5

     0     2     3     1     0
     2    40   124    47     4
     1   119   341   109    10
     1    32   117    33     1
     0     4     8     1     0

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

x = randn(1000,1);
y = randn(1000,1);
h = histogram2(x,y)

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

h = 
  Histogram2 with properties:

             Data: [1000x2 double]
           Values: [15x15 double]
          NumBins: [15 15]
        XBinEdges: [1x16 double]
        YBinEdges: [1x16 double]
         BinWidth: [0.5000 0.5000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Show all properties

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

nbins = morebins(h,'x');
nbins = morebins(h,'x')

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

nbins = 1×2

    19    15

Используйте fewerbins функция для корректировки количества интервалов в размерности y.

nbins = fewerbins(h,'y');
nbins = fewerbins(h,'y')

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

nbins = 1×2

    19    11

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

h.NumBins = [20 10];

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

Создайте двухмерную гистограмму, используя 1000 нормально распределенных случайных чисел с 12 интервалами в каждой размерности. Задайте FaceColor как 'flat' чтобы окрасить гистограммы по высоте.

h = histogram2(randn(1000,1),randn(1000,1),[12 12],'FaceColor','flat');
colorbar

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

Сгенерируйте случайные данные и постройте график двухмерной мозаичной гистограммы. Отобразите пустые интервалы путем определения ShowEmptyBins как 'on'.

x = 2*randn(1000,1)+2;
y = 5*randn(1000,1)+3;
h = histogram2(x,y,'DisplayStyle','tile','ShowEmptyBins','on');

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

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

x = randn(1000,1);
y = randn(1000,1);
Xedges = [-Inf -2:0.4:2 Inf];
Yedges = [-Inf -2:0.4:2 Inf];
h = histogram2(x,y,Xedges,Yedges)

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

h = 
  Histogram2 with properties:

             Data: [1000x2 double]
           Values: [12x12 double]
          NumBins: [12 12]
        XBinEdges: [1x13 double]
        YBinEdges: [1x13 double]
         BinWidth: 'nonuniform'
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Show all properties

Когда границы интервала бесконечны, histogram2 отображает каждый интервал выбросов (вдоль контура гистограммы), которая в два раза больше ширины интервала рядом с ней.

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

h.Normalization = 'countdensity';

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

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

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

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

h = 
  Histogram2 with properties:

             Data: [1000x2 double]
           Values: [15x15 double]
          NumBins: [15 15]
        XBinEdges: [1x16 double]
        YBinEdges: [1x16 double]
         BinWidth: [0.5000 0.5000]
    Normalization: 'probability'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Show all properties

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

S = sum(h.Values(:))
S = 1

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

x = randn(1000,1);
y = randn(1000,1);
h = histogram2(x,y)

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

h = 
  Histogram2 with properties:

             Data: [1000x2 double]
           Values: [15x15 double]
          NumBins: [15 15]
        XBinEdges: [1x16 double]
        YBinEdges: [1x16 double]
         BinWidth: [0.5000 0.5000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Show all properties

Окрашивайте гистограммы по высоте.

h.FaceColor = 'flat';

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

Измените количество интервалов в каждом направлении.

h.NumBins = [10 25];

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

Отобразите гистограмму как график плитки.

h.DisplayStyle = 'tile';
view(2)

Figure contains an axes. The axes contains an object of type histogram2. This object represents y vs. x.

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

histogram2(randn(100,1),randn(100,1));
savefig('histogram2.fig');
close gcf

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

h = openfig('histogram2.fig');

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

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

y = findobj(h,'type','histogram2')
y = 
  Histogram2 with properties:

             Data: [100x2 double]
           Values: [7x6 double]
          NumBins: [7 6]
        XBinEdges: [-3 -2 -1 0 1 2 3 4]
        YBinEdges: [-3 -2 -1 0 1 2 3]
         BinWidth: [1 1]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Show all properties

Совет

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

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

Введенный в R2015b