histogram2

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

Описание

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

Создание

Синтаксис

histogram2(X,Y)
histogram2(X,Y,nbins)
histogram2(X,Y,Xedges,Yedges)
histogram2('XBinEdges',Xedges,'YBinEdges',Yedges,'BinCounts',counts)
histogram2(___,Name,Value)
histogram2(ax,___)
h = 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 Properties.

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

пример

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

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

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

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

Количество интервалов в каждой размерности, заданной как положительное скалярное целое число или двухэлементный вектор положительных целых чисел. Если вы не задаете 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 интервал если Xedges(i)X(k) <Xedges(i+1) и Yedges(j)Y(k) <Yedges(j+1). Последние интервалы в каждой размерности также включают последнее (внешнее) ребро. Например, [X(k),Y(k)] попадает в i th интервал в последней строке если Xedges(end-1)X(k)Xedges(end) и Yedges(i)Y(k) <Yedges(i+1).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

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

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Количества интервала, заданные как матрица. Используйте этот вход, чтобы передать количества интервала 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

ЗначениеОписание
'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 для каждой размерности и помещает ребра интервала на полпути между целыми числами.

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

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

Примечание

Если вы устанавливаете NumBins, XBinEdges, YBinEdges, BinWidth или свойство BinLimits, то свойство BinMethod установлено в 'manual'.

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

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

Если вы задаете BinWidth, то histogram2 может использовать максимум 1 024 интервалов (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 Properties.

Свойства

Histogram2 PropertiesВнешний вид и поведение 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')

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

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

nXnY = h.NumBins
nXnY = 1×2

    25    28

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

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

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

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

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

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')

nbins = 1×2

    19    15

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

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

nbins = 1×2

    19    11

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

h.NumBins = [20 10];

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

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

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

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

Сгенерируйте 1 000 пар случайных чисел и создайте двумерную гистограмму. Задайте ребра интервала с помощью двух векторов с бесконечно широкими интервалами на контуре гистограммы, чтобы получить все выбросы, которые не удовлетворяют |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)

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';

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

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

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.0000

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

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

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';

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

h.NumBins = [10 25];

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

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

Используйте функцию savefig, чтобы сохранить фигуру histogram2.

y = histogram2(randn(100,1),randn(100,1));
savefig('histogram2.fig');
clear all
close all

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

h = openfig('histogram2.fig');

Используйте функцию 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