exponenta event banner

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.

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 точек данных 2-D.

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 для изменения свойств поверхности. Пример см. в разделе Настройка графических свойств. Список свойств см. в разделе Свойства поверхности.

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

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

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