hist3

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

Описание

пример

hist3(X) создает двухмерный гистограммный график X(:,1) и X(:,2) использование бункеров с равными интервалами 10 на 10. hist3 функция отображает интервалы 3-D виде прямоугольных полос, а высота каждой полоски указывает количество элементов в интервале.

пример

hist3(X,'Nbins',nbins) задает количество интервалов в каждой размерности гистограммы. Этот синтаксис эквивалентен hist3(X,nbins).

пример

hist3(X,'Ctrs',ctrs) задает центры интервалов в каждой размерности гистограммы. Этот синтаксис эквивалентен hist3(X,ctrs).

hist3(X,'Edges',edges) определяет ребра интервалов в каждой размерности.

пример

hist3(___,Name,Value) задает графические свойства, используя один или несколько аргументы пары "имя-значение" в дополнение к входным параметрам в предыдущих синтаксисах. Для примера, 'FaceAlpha',0.5 создает полупрозрачную гистограмму. Список свойств см. в разделе «Свойства поверхности».

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

пример

N = hist3(___) возвращает количество элементов в X которые попадают в каждый интервал. Этот синтаксис не создает гистограмму.

[N,c] = hist3(___) также возвращает центр интервала. Этот синтаксис не создает гистограмму.

Примеры

свернуть все

Загрузите выборочные данные.

load carbig

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

X = [MPG,Weight];
hist3(X)
xlabel('MPG')
ylabel('Weight')

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

Создайте двухмерную гистограмму на интервалах, заданных центрами интервалов, и подсчитайте количество элементов в каждом интервале.

Загрузите выборочные данные.

load carbig

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

X = [MPG,Weight];
hist3(X,'Ctrs',{0:10:50 2000:500:5000})
xlabel('MPG')
ylabel('Weight')

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

Подсчитайте количество элементов в каждом интервале.

N = hist3(X,'Ctrs',{0:10:50 2000:500:5000})
N = 6×7

     0     0     0     0     0     0     0
     0     0     2     3    16    26     6
     6    34    50    49    27    10     0
    70    49    11     3     0     0     0
    29     4     2     0     0     0     0
     1     0     0     0     0     0     0

Загрузите выборочные данные.

load carbig

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

X = [MPG,Weight];
hist3(X,'CDataMode','auto','FaceColor','interp')
xlabel('MPG')
ylabel('Weight')

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

Загрузите выборочные данные.

load carbig

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

X = [MPG,Weight];
hist3(X,'CdataMode','auto')
xlabel('MPG')
ylabel('Weight')
colorbar
view(2)

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

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

Загрузите выборочные данные.

load carbig

Создайте двухмерную гистограмму с 7 интервалами в каждой размерности.

X = [MPG,Weight];
hist3(X,'Nbins',[7 7])
xlabel('MPG')
ylabel('Weight')

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

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

s = findobj(gca,'Type','Surface');
s.FaceAlpha = 0.65;

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

Создайте двухмерную гистограмму и добавьте 2-D проективное представление интенсивности к гистограмме.

Загрузите seamount набор данных (подводная мачта - подводная гора). Набор данных состоит из набора долготы (x) и широта (y) местоположения и соответствующие seamount повышения (z) измеряется в этих координатах. Этот пример использует x и y нарисовать двухмерную гистограмму.

load seamount

Нарисуйте двухмерную гистограмму.

hist3([x,y])
xlabel('Longitude')
ylabel('Latitude')
hold on

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

Подсчитайте количество элементов в каждом интервале.

N = hist3([x,y]);

Сгенерируйте сетку, чтобы нарисовать 2-D проективный вид интенсивности при помощи pcolor.

N_pcolor = N';
N_pcolor(size(N_pcolor,1)+1,size(N_pcolor,2)+1) = 0;
xl = linspace(min(x),max(x),size(N_pcolor,2)); % Columns of N_pcolor
yl = linspace(min(y),max(y),size(N_pcolor,1)); % Rows of N_pcolor

Нарисуйте карту интенсивности при помощи pcolor. Установите z-уровень карты интенсивности, чтобы просмотреть гистограмму и карту интенсивности вместе.

h = pcolor(xl,yl,N_pcolor);
colormap('hot') % Change color scheme 
colorbar % Display colorbar
h.ZData = -max(N_pcolor(:))*ones(size(N_pcolor));
ax = gca;
ax.ZTick(ax.ZTick < 0) = [];
title('Seamount Location Histogram and Intensity Map');

Figure contains an axes. The axes with title Seamount Location Histogram and Intensity Map contains 2 objects of type surface.

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

свернуть все

Данные для распределения между интервалами, заданные как m-на-2 числовая матрица, где m количество точек данных. Соответствующие элементы в X(:,1) и X(:,2) задайте x и y координаты 2D данных точек.

hist3 игнорирует все NaN значения. Точно так же, hist3 игнорирует Inf и –Inf значения, если вы явным образом не задаете Inf или –Inf как граница интервала при помощи edges входной параметр.

Типы данных: single | double

Количество интервалов в каждой размерности, заданное как двухэлементный вектор положительных целых чисел. nbins(1) определяет количество интервалов в первой размерности и nbins(2) определяет количество интервалов во втором измерении.

Пример: [10 20]

Типы данных: single | double

Центр интервала в каждой размерности, заданный как двухэлементный массив ячеек из числовых векторов с монотонно незакрытыми значениями. ctrs{1} и ctrs{2} - положения центров интервалов в первом и вторых измерениях, соответственно.

hist3 присваивает строки X выпадение из области значений сетки в интервалы по внешним краям сетки.

Пример: {0:10:100 0:50:500}

Типы данных: cell

Границы интервала в каждой размерности, заданные как двухэлементный массив ячеек из числовых векторов с монотонно незакрытыми значениями. edges{1} и edges{2} - положения границ интервала в первом и вторых измерениях, соответственно.

Значение X(k,:) находится в (i,j)th bin, если edges{1}(i) ≤ X(k,1) < edges{1}(i+1) и edges{2}(j) ≤ X(k,2) < edges{2}(j+1).

Последние интервалы в каждой размерности также включают последнее (внешнее) ребро. Для примера, X(k,:) падает в (I,j)th bin, если edges{1}(I–1) ≤ X(k,1) ≤ edges{1}(I) и edges{2}(j) ≤ X(k,2) < edges{2}(j+1), где I - длина edges{1}. Кроме того, X(k,:) падает в (i,J)th bin, если edges{1}(i) ≤ X(k,1) < edges{1}(i+1) и edges{2}(J–1) ≤ X(k,2) ≤ edges{2}(J), где J - длина edges{2}.

hist3 не подсчитывает строки X выпадение за пределы области значений сетки. Использование –Inf и Inf в edges для включения всех не- NaN значения.

Пример: {0:10:100 0:50:500}

Типы данных: cell

Целевые оси, заданные как объект осей. Если вы не задаете Axes объект, затем hist3 функция использует текущие системы координат (gca). Для получения дополнительной информации см. раздел Свойств осей графика».

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

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

Пример: hist3(X,'FaceColor','interp','CDataMode','auto') окрашивает полосы гистограммы в соответствии с высотой полос.

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

Режим выбора для CData (вершинные цвета), заданные как разделенная разделенными запятой парами, состоящая из 'CDataMode' и одно из следующих значений:

  • 'manual' - Используйте вручную заданные значения в CData свойство. Цвет по умолчанию в CData светло-стальной синий, соответствующий тройному значению RGB [0.75 0.85 0.95].

  • 'auto' - Используйте ZData значения для установки цветов. ZData содержит данные координат z для восьми углов каждой полосы.

Пример: 'CDataMode','auto'

Цвет ребра, заданный как разделенная разделенными запятой парами, состоящая из 'EdgeColor' и одно из следующих значений:

  • 'none' - Не рисуйте ребер.

  • 'flat' - Используйте другой цвет для каждого ребра на основе значений в CData свойство.

  • 'interp' - Используйте интерполированную раскраску для каждого ребра на основе значений в CData свойство.

  • Триплет RGB, шестнадцатеричный код цвета, название цвета или краткое имя - Используйте указанный цвет для всех ребер. Эти значения не используют значения цветов в CData свойство.

Цвет по умолчанию [0 0 0] соответствует чёрным ребрам.

Триплеты 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'

Пример: 'EdgeColor','blue'

Прозрачность лица, заданная как разделенная разделенными запятой парами, состоящая из 'FaceAlpha' и одно из следующих значений:

  • Скаляр в области значений [0,1] - Используйте равномерную прозрачность по всем граням. Значение 1 полностью непрозрачен и 0 полностью прозрачен. Значения между 0 и 1 являются полупрозрачными. Эта опция не использует значения прозрачности в AlphaData свойство.

  • 'flat' - Используйте разную прозрачность для каждой грани на основе значений в AlphaData свойство. Значение прозрачности в первой вершине определяет прозрачность для всей грани. Это значение применяется только, когда вы задаете AlphaData Свойству и установите FaceColor свойство к 'flat'.

  • 'interp' - Используйте интерполированную прозрачность для каждой грани на основе значений в AlphaData свойство. Прозрачность изменяется между каждой гранью путем интерполяции значений в вершинах. Это значение применяется только, когда вы задаете AlphaData Свойству и установите FaceColor свойство к 'interp'.

  • 'texturemap' - Преобразуйте данные в AlphaData так, чтобы он соответствовал поверхности.

Пример: 'FaceAlpha',0.5

Цвет грани, заданный как разделенная разделенными запятой парами, состоящая из 'FaceColor' и одно из следующих значений:

  • 'flat' - Используйте другой цвет для каждой грани на основе значений в CData свойство.

  • 'interp' - Используйте интерполированную раскраску для каждой грани на основе значений в CData свойство.

  • 'none' - Не рисуйте грани.

  • 'texturemap' - Преобразуйте цветовые данные в CData так, чтобы он соответствовал поверхности.

  • Триплет RGB, шестнадцатеричный код цвета, название цвета или краткое имя - Используйте указанный цвет для всех граней. Эти значения не используют значения цветов в CData свойство.

Триплеты 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'

Пример: 'FaceColor','interp'

Стиль линии, заданный как разделенная разделенными запятой парами, состоящая из 'LineStyle' и один из опций в этой таблице.

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

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

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

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

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

Пример: 'LineStyle',':'

Ширина линии, заданная как разделенная разделенными запятой парами, состоящая из 'LineWidth' и положительное значение в точках.

Пример: 'LineWidth',0.75

Типы данных: single | double

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

свернуть все

Количество элементов в X которые попадают в каждый интервал, возвращаемую в виде числовой матрицы.

Интервал в каждой размерности, возвращенный как двухэлементный массив ячеек из числовых векторов. c{1} и c{2} - положения центров интервалов в первом и вторых измерениях, соответственно.

Совет

hist3 функция создает двухмерную гистограмму, которая является типом объемной поверхностной диаграммы. Можно задать свойства поверхности с помощью одного или нескольких аргументов пары "имя-значение". Кроме того, вы можете изменить внешний вид гистограммы, изменив значения свойств поверхности после создания гистограммы. Получите указатель на объект поверхности при помощи s = findobj(gca,'Type','Surface'), а затем используйте s для изменения свойств поверхности. Для получения примера см. раздел «Настройка графических Свойств». Список свойств см. в разделе «Свойства поверхности».

Альтернативная функциональность

The histogram2 функция позволяет вам создать двухмерную гистограмму с помощью Histogram2 объект. Можно использовать аргументы пары "имя-значение" histogram2 использовать нормализацию ('Normalization'), отрегулируйте ширину интервалов в каждой размерности ('BinWidth') и отобразить гистограмму как прямоугольный массив плиток вместо 3-D плиток ('DisplayStyle').

Представлено до R2006a