exponenta event banner

histogram2

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

Описание

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

Создание

Описание

пример

histogram2(X,Y) создает двумерный график гистограммы X и Y. 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 точек данных 2-D, [X(k),Y(k)]. Типы данных X и Y могут быть разными, но histogram2 объединяет эти входные данные в единый Nоколо-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])

Объект Axes. Если оси не указаны, то 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'

Правило Freedman-Diaconis менее чувствительно к отклонениям в данных и может быть более подходящим для данных с тяжелохвостыми распределениями. Он использует размер ячейки, равный [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=wxi⋅wyi - площадь каждого элемента, вычисленная с использованием ширины элемента 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=ciN⋅Ai

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

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

'cdf'

vi=∑j=1i cjN

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

  • Высота каждого стержня равна совокупному относительному количеству наблюдений в каждом бункере и во всех предыдущих бункерах в измерениях 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' для масштабирования лимитов ячейки в данных.

Bin limits in y-dimension, задается как двухэлементный вектор, [ybmin,ybmax]. Вектор указывает первую и последнюю кромки ячейки в измерении Y.

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

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

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

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

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

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

Свойства

Histogram2 СвойстваHistogram2 внешний вид и поведение

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

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

Примеры

свернуть все

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