Как построить гистограмму в матлабе
Перейти к содержимому

Как построить гистограмму в матлабе

Иллюстрированный самоучитель по MatLab

Классическая гистограмма характеризует числа попаданий значений элементов вектора Y в М интервалов с представлением этих чисел в виде столбцовой диаграммы. Для получения данных для гистограммы служит функция hist, записываемая в следующем виде:

  • N=hist(Y) – возвращает вектор чисел попаданий для 10 интервалов, выбираемых автоматически. Если Y – матрица, то выдается массив данных о числе попаданий для каждого из ее столбцов;
  • N=hist(Y,M) – аналогична вышерассмотренной, но используется М интервалов (М – скаляр);
  • N=hist(Y.X) – возвращает числа попаданий элементов вектора Y в интервалы, центры которых заданы элементами вектора X;
  • [N,X]=HIST(…) – возвращает числа попаданий в интервалы и данные о центрах интервалов.

Команда hist(…) с синтаксисом, аналогичным приведенному выше, строит график гистограммы. В следующем примере строится гистограмма для 1000 случайных чисел и выводится вектор с данными о числах их попаданий в интервалы, заданные вектором х:

Построенная гистограмма показана на рисунке 6.8.

Рис. 6.8. Пример построения гистограммы

Нетрудно заметить, что распределение случайных чисел близко к нормальному закону. Увеличив их количество, можно наблюдать еще большее соответствие этому закону.

Как построить гистограмму в матлабе

Description

A histogram shows the distribution of data values.

n = hist(Y) bins the elements in vector Y into 10 equally spaced containers and returns the number of elements in each container as a row vector. If Y is an m -by- p matrix, hist treats the columns of Y as vectors and returns a 10-by- p matrix n . Each column of n contains the results for the corresponding column of Y .

n = hist(Y,x) where x is a vector, returns the distribution of Y among length (x) bins with centers specified by x . For example, if x is a 5-element vector, hist distributes the elements of Y into five bins centered on the x-axis at the elements in x . Note: use histc if it is more natural to specify bin edges instead of centers.

n = hist(Y,nbins) where nbins is a scalar, uses nbins number of bins.

[n,xout] = hist(. ) returns vectors n and xout containing the frequency counts and the bin locations. You can use bar (xout,n) to plot the histogram.

hist(. ) without output arguments produces a histogram plot of the output described above. hist distributes the bins along the x-axis between the minimum and maximum values of Y .

hist(axes_handle. ) plots into the axes with handle axes_handle instead of the current axes ( gca ).

All elements in vector Y or in one column of matrix Y are grouped according to their numeric range. Each group is shown as one bin.

The histogram’s x-axis reflects the range of values in Y . The histogram’s y-axis shows the number of elements that fall within the groups; therefore, the yaxis ranges from 0 to the greatest number of elements deposited in any bin.

The histogram is created with a patch graphics object. If you want to change the color of the graph, you can set patch properties. See the «Example» section for more information. By default, the graph color is controlled by the current colormap, which maps the bin color to the first color in the colormap.

Generate a bell-curve histogram from Gaussian data.

Change the color of the graph so that the bins are red and the edges of the bins are white.

histogram

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

Создание

Синтаксис

Описание

histogram( X ) создает график гистограммы X . histogram функционируйте использует автоматический алгоритм раскладывания, который возвращает интервалы с универсальной шириной, выбранной, чтобы покрыть область значений элементов в X и покажите базовую форму распределения. histogram отображает интервалы как прямоугольники, таким образом, что высота каждого прямоугольника указывает на число элементов в интервале.

histogram( X , nbins ) использование много интервалов, заданных скаляром, nbins .

histogram( X , edges ) виды X в интервалы с границами интервала, заданными вектором, edges . Каждый интервал включает левый край, но не включает правый край, за исключением последнего интервала, который включает оба ребра.

histogram(‘BinEdges’, edges ,’BinCounts’, counts ) вручную задает границы интервала и сопоставленное количество интервалов. histogram строит заданное количество интервалов и не делает никакого раскладывания данных.

histogram( C ) , где C категориальный массив, строит гистограмму с панелью для каждой категории в C .

histogram( C , Categories ) графики только подмножество категорий заданы Categories .

histogram(‘Categories’, Categories ,’BinCounts’, counts ) вручную задает категории и сопоставленное количество интервалов. histogram строит заданное количество интервалов и не делает никакого раскладывания данных.

histogram( ___ , Name,Value ) задает дополнительные опции с одним или несколькими Name,Value парные аргументы с помощью любого из предыдущих синтаксисов. Например, можно задать ‘BinWidth’ и скаляр, чтобы настроить ширину интервалов или ‘Normalization’ с допустимой опцией ( ‘count’ , ‘probability’ , ‘countdensity’ , ‘pdf’ , ‘cumcount’ , или ‘cdf’ ) использовать другой тип нормализации. Для списка свойств смотрите Histogram Properties .

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

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

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

X — Данные, чтобы распределить среди интервалов
вектор | матрица | многомерный массив

Данные, чтобы распределить среди интервалов в виде вектора, матрицы или многомерного массива. Если X не вектор, затем histogram обработки это как вектор отдельного столбца, X(:) , и строит одну гистограмму.

histogram игнорирует весь NaN и NaT значения. Точно так же histogram игнорирует Inf и -Inf значения, если границы интервала явным образом не задают Inf или -Inf как граница интервала. Несмотря на то, что NaN NAT Inf , и -Inf значения обычно не строятся, они все еще включены в вычисления нормализации, которые включают общее количество элементов данных, таких как ‘probability’ .

Примечание

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

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

C — Категориальные данные
категориальный массив

Категориальные данные в виде категориального массива. histogram не строит неопределенные категориальные значения. Однако неопределенные категориальные значения все еще включены в вычисления нормализации, которые включают общее количество элементов данных, таких как ‘probability’ .

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

nbins — Количество интервалов
положительное целое число

Количество интервалов в виде положительного целого числа. Если вы не задаете nbins то histogram автоматически вычисляет сколько интервалов, чтобы использовать на основе значений в X .

Пример: histogram(X,15) создает гистограмму с 15 интервалами.

edges BinEdges
вектор

Границы интервала в виде вектора. edges(1) левый край первого интервала и edges(end) правый край последнего интервала.

Значение X(i) находится в k интервал th, если edges(k) ≤ X(i) < edges(k+1) . Последний интервал также включает правильную границу интервала, так, чтобы это содержало X(i) если edges(end-1) ≤ X(i) ≤ edges(end) .

Для datetime и данных о длительности, edges должен быть datetime или вектор длительности в монотонно увеличивающемся порядке.

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

Categories — Категории включены в гистограмму
массив ячеек из символьных векторов | категориальный массив | массив строк

Примечание

Эта опция только применяется к категориальным гистограммам.

Категории, включенные в гистограмму в виде массива ячеек из символьных векторов, категориального массива или массива строк.

Если вы задаете входной категориальный массив C , затем по умолчанию, histogram строит панель для каждой категории в C . В этом случае используйте Categories задавать уникальное подмножество категорий вместо этого.

Если вы задаете количество интервалов, то Categories задает связанные названия категории для гистограммы.

Пример: h = histogram(C,<'Large','Small'>) отображает на графике только категориальные данные в категориях ‘Large’ и ‘Small’ .

Пример: histogram(‘Categories’,<'Yes','No','Maybe'>,’BinCounts’,[22 18 3]) строит гистограмму, которая имеет три категории со связанным количеством интервалов.

Пример: h.Categories запрашивает категории, которые находятся в объекте h гистограммы .

Типы данных: cell | categorical | string

counts bincounts
вектор

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

Длина counts должно быть равно количеству интервалов.

Для числовых гистограмм количеством интервалов является length(edges)-1 .

Для категориальных гистограмм количество интервалов равно количеству категорий.

Пример: histogram(‘BinEdges’,-2:2,’BinCounts’,[5 8 15 9])

Пример: histogram(‘Categories’,<'Yes','No','Maybe'>,’BinCounts’,[22 18 3])

ax — Целевые оси
Axes возразите | PolarAxes объект

Целевые оси в виде Axes возразите или PolarAxes объект. Если вы не задаете оси и если текущей системой координат являются Оси декартовой системы координат, то histogram функционируйте использует текущую систему координат ( gca ). Чтобы построить в полярные оси, задайте PolarAxes возразите как первый входной параметр или используйте polarhistogram функция.

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

Пример: histogram(X,’BinWidth’,5)

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

BarWidth — Относительная ширина категориальных панелей
0.9 (значение по умолчанию) | скаляр в области значений [0,1]

Примечание

Эта опция только применяется к гистограммам категориальных данных.

Относительная ширина категориальных панелей в виде скалярного значения в области значений [0,1] . Используйте это свойство управлять разделением категориальных панелей в гистограмме. Значением по умолчанию является 0.9 , что означает, что ширина панели составляет 90% пробела от предыдущей панели до следующей панели с 5% того пробела на каждой стороне.

Если вы устанавливаете это свойство на 1 , затем смежное касание панелей.

Пример: 0.5

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

BinLimits ‘BinLimits’
двухэлементный вектор

Интервал ограничивает в виде двухэлементного вектора, [bmin,bmax] . Эта опция строит гистограмму с помощью значений во входном массиве, X , то падение между bmin и bmax включительно. Таким образом, X(X>=bmin & X<=bmax) .

Эта опция не применяется к гистограммам категориальных данных.

Пример: histogram(X,’BinLimits’,[1,10]) строит гистограмму с помощью только значения в X это между 1 и 10 включительно.

BinLimitsMode — Режим выбора для пределов интервала
‘auto’ (значение по умолчанию) | ‘manual’

Режим выбора для интервала ограничивает в виде ‘auto’ или ‘manual’ . Значением по умолчанию является ‘auto’ , так, чтобы пределы интервала автоматически настроили к данным.

Если вы явным образом задаете любой BinLimits или BinEdges , затем BinLimitsMode автоматически установлен в ‘manual’ . В этом случае задайте BinLimitsMode как ‘auto’ перемасштабировать пределы интервала данным.

Эта опция не применяется к гистограммам категориальных данных.

BinMethod — Алгоритм раскладывания
‘auto’ (значение по умолчанию) | ‘scott’ | ‘fd’ | ‘integers’ | ‘sturges’ | ‘sqrt’ | .

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

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

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

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

Целочисленное правило полезно с целочисленными данными, когда это создает интервал для каждого целого числа. Это использует ширину интервала 1 и помещает границы интервала на полпути между целыми числами. Чтобы постараться не случайно создавать слишком много интервалов, можно использовать это правило, чтобы создать предел 65 536 интервалов ( 2 16 ). Если область значений данных больше 65536, то целочисленное правило использует более широкие интервалы вместо этого.

Примечание

‘integers’ не поддерживает данные о длительности или datetime.

Правило Стерджеса популярно из-за его простоты. Это выбирает количество интервалов, чтобы быть ceil(1 + log2(numel(X))) .

Правило Квадратного корня широко использовано в других пакетах программного обеспечения. Это выбирает количество интервалов, чтобы быть ceil(sqrt(numel(X))) .

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

Для данных о datetime метод интервала может быть одним из этих модулей времени:

‘second’ ‘month’
‘minute’ ‘quarter’
‘hour’ ‘year’
‘day’ ‘decade’
‘week’ ‘century’

Для данных о длительности метод интервала может быть одним из этих модулей времени:

‘second’ ‘day’
‘minute’ ‘year’
‘hour’

Если вы задаете BinMethod с datetime или данными о длительности, затем histogram может использовать максимум 65 536 интервалов (или 2 16 ). Если заданная длительность интервала требует большего количества интервалов, то histogram использует большую ширину интервала, соответствующую максимальному количеству интервалов.

Эта опция не применяется к гистограммам категориальных данных.

Примечание

Если вы устанавливаете BinLimits NumBins BinEdges , или BinWidth свойство, затем BinMethod свойство установлено в ‘manual’ .

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

BinWidth — Ширина интервалов
скаляр

Ширина интервалов в виде скаляра. Когда вы задаете BinWidth , затем histogram может использовать максимум 65 536 интервалов (или 2 16 ). Если вместо этого заданная ширина интервала требует большего количества интервалов, то histogram использует большую ширину интервала, соответствующую максимальному количеству интервалов.

Для datetime и данных о длительности, значения ‘BinWidth’ может быть скалярная длительность или календарная длительность.

Эта опция не применяется к гистограммам категориальных данных.

Пример: histogram(X,’BinWidth’,5) интервалы использования с шириной 5.

DisplayOrder — Порядок отображения категории
‘data’ (значение по умолчанию) | ‘ascend’ | ‘descend’

Отображение категории заказывает в виде ‘ascend’ , ‘descend’ , или ‘data’ . С ‘ascend’ или ‘descend’ , гистограмма отображается с увеличением или уменьшением высот панели. ‘data’ по умолчанию значение использует порядок категории во входных данных, C .

Эта опция только работает с категориальными данными.

DisplayStyle — Стиль отображения гистограммы
‘bar’ (значение по умолчанию) | ‘stairs’

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

Значение по умолчанию ‘bar’ отображает столбиковую диаграмму гистограммы.

Пример: histogram(X,’DisplayStyle’,’stairs’) строит схему гистограммы.

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

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

Пример: histogram(X,’EdgeAlpha’,0.5) создает график гистограммы с полупрозрачными ребрами панели.

EdgeColor — Цвет обводки гистограммы
[0 0 0] или черное (значение по умолчанию) | ‘none’ | ‘auto’ | Триплет RGB | шестнадцатеричный цветовой код | название цвета

Цвет обводки гистограммы в виде одного из этих значений:

‘none’ — Ребра не чертятся.

‘auto’ — Цвет каждого ребра выбран автоматически.

Триплет RGB, шестнадцатеричный цветовой код или название цвета — Ребра используют заданный цвет.

Триплеты RGB и шестнадцатеричные цветовые коды полезны для определения пользовательских цветов.

Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1] ; например, [0.4 0.6 0.7] .

Шестнадцатеричный цветовой код является вектором символов или строковым скаляром, который запускается с символа хеша ( # ) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F . Значения не являются чувствительными к регистру. Таким образом, цветовые коды ‘#FF8800’ , ‘#ff8800’ , ‘#F80’ , и ‘#f80’ эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *