Main Content

histogram

Gráfica de histograma

  • Histogram plot

Descripción

Los histogramas son un tipo de gráfica de barras que agrupa los datos en bins. Después de crear un objeto Histogram, puede modificar aspectos del histograma cambiando los valores de sus propiedades. Esto es especialmente útil para modificar rápidamente las propiedades de los bins o cambiar la visualización.

Creación

Descripción

ejemplo

histogram(X) crea una gráfica de histograma de X. La función histogram usa un algoritmo de discretización automático que devuelve bins con una amplitud uniforme, elegidos para cubrir el rango de elementos en X y revelar la forma subyacente de la distribución. histogram muestra los bins como barras rectangulares, de tal forma que la altura de cada rectángulo indica el número de elementos del bin.

ejemplo

histogram(X,nbins) especifica el número de bins.

ejemplo

histogram(X,edges) clasifica X en bins con los bordes especificados en un vector.

histogram('BinEdges',edges,'BinCounts',counts) representa los números de bins especificados y no hace ninguna discretización de datos.

ejemplo

histogram(C) representa un histograma con una barra para cada categoría del arreglo categórico C.

histogram(C,Categories) representa solamente un subconjunto de categorías en C.

histogram('Categories',Categories,'BinCounts',counts) especifica manualmente las categorías y los números de bins asociados. histogram representa los números de bins especificados y no hace ninguna discretización de datos.

ejemplo

histogram(___,Name,Value) especifica parámetros adicionales con uno o más argumentos de par nombre-valor para cualquiera de las sintaxis anteriores. Por ejemplo, especifique Normalization para utilizar un tipo de normalización diferente. Para obtener una lista de las propiedades, consulte Histogram Properties.

histogram(ax,___) se representa en los ejes especificados en lugar de en los ejes actuales (gca). ax puede preceder a cualquiera de las combinaciones de argumentos de entrada de las sintaxis anteriores.

ejemplo

h = histogram(___) devuelve un objeto Histogram. Úselo para inspeccionar y ajustar las propiedades del histograma. Para obtener una lista de las propiedades, consulte Histogram Properties.

Argumentos de entrada

expandir todo

Datos para distribuir entre los bins, especificados como vector, matriz o arreglo multidimensional. histogram trata los datos de matrices y arreglos multidimensionales como un único vector columna, X(:), y representa un único histograma.

histogram ignora todos los valores NaN y NaT. De igual modo, histogram ignora los valores Inf y -Inf, a menos que los bordes de los bins especifiquen explícitamente Inf o -Inf como borde de bin. Aunque los valores NaN, NaT, Inf y -Inf normalmente no se representan, siguen incluidos en los cálculos de normalización que incluyen el número total de elementos de datos, como 'probability'.

Nota

Si X contiene números enteros del tipo int64 o uint64 que son mayores que flintmax, se recomienda que especifique explícitamente los bordes de los bins del histograma. histogram agrupa automáticamente los datos de entrada usando doble precisión, a la que le falta la precisión de los enteros para números superiores a flintmax.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | datetime | duration

Datos categóricos, especificados como arreglo categórico. histogram no representa los valores categóricos sin definir. Sin embargo, estos valores sí se incluyen en los cálculos de normalización que incluyen el número total de elementos de datos, como 'probability'.

Tipos de datos: categorical

Número de bins, especificado como entero positivo. Si no especifica nbins, histogram determina el número de bins a partir de los valores de X.

Si especifica nbins con BinMethod, BinWidth o BinEdges, histogram solo respeta el último parámetro.

Ejemplo: histogram(X,15) crea un histograma con 15 bins.

Bordes de los bins, especificados como vector. edges(1) es el borde inicial del primer bin y edges(end) es el borde final del último bin.

Cada bin incluye el borde inicial, pero no incluye el borde final, excepto el último bin que incluye ambos bordes.

Para los datos datetime y duration, edges debe ser un vector datetime o duration en un orden que aumente monótonamente.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | datetime | duration

Nota

Esta opción solo se aplica a histogramas categóricos.

Categorías incluidas en el histograma, especificadas como arreglo de celdas de vectores de caracteres, arreglo categórico, arreglo de cadenas o escalar pattern.

  • Si especifica un arreglo categórico de entrada C, de manera predeterminada, histogram representa una barra por cada categoría de C. En ese caso, use Categories para especificar un subconjunto único de las categorías.

  • Si especifica recuentos de bins, Categories especifica los nombres de las categorías asociadas para el histograma.

Ejemplo: h = histogram(C,{'Large','Small'}) solo representa los datos categóricos en las categorías 'Large' y 'Small'.

Ejemplo: histogram(C,"Y" + wildcardPattern) representa datos en las categorías cuyos nombres empiezan por la letra Y.

Ejemplo: histogram('Categories',{'Yes','No','Maybe'},'BinCounts',[22 18 3]) representa un histograma que tiene tres categorías con los recuentos de bins asociados.

Ejemplo: h.Categories consulta las categorías que se encuentran en el objeto de histograma h.

Tipos de datos: cell | categorical | string | pattern

Recuentos de bins, especificados como vector. Use esta entrada para pasar recuentos de bins a histogram cuando el cálculo de recuentos de bins se lleve a cabo por separado y no desee que histogram realice ninguna discretización de datos.

El tamaño de counts debe ser igual al número de bins.

  • Para histogramas numéricos, el número de bins es length(edges)-1.

  • Para histogramas categóricos, el número de bins equivale al número de categorías.

Ejemplo: histogram('BinEdges',-2:2,'BinCounts',[5 8 15 9])

Ejemplo: histogram('Categories',{'Yes','No','Maybe'},'BinCounts',[22 18 3])

Ejes objetivo, especificados como objeto Axes o como objeto PolarAxes. Si no se especifican los ejes y los ejes actuales son ejes cartesianos, la función histogram utiliza los ejes actuales (gca). Para representar en ejes polares, especifique el objeto PolarAxes como primer argumento de entrada o utilice la función polarhistogram.

Argumentos de par nombre-valor

Especifique pares opcionales de argumentos como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.

Ejemplo: histogram(X,BinWidth=5)

En las versiones anteriores a R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: histogram(X,'BinWidth',5)

Nota

Las propiedades que se enumeran aquí son solo un subconjunto. Para obtener una lista completa, consulte Histogram Properties.

Bins

expandir todo

Anchura de los bins, especificada como escalar positivo. Si especifica BinWidth, Histogram puede usar un máximo de 65.536 bins (o 216). Si la anchura de los bins especificada requiere más bins, histogram usa una anchura de bins más grande, correspondiente al número máximo de bins.

  • Para datos datetime y duration, BinWidth puede ser una duración escalar o de calendario.

  • Si especifica BinWidth con BinMethod, NumBins o BinEdges, histogram solo respeta el último parámetro.

  • Esta opción no se aplica a datos categóricos.

Ejemplo: histogram(X,'BinWidth',5) usa bins con una anchura de 5.

Límites de bins, especificados como un vector de dos elementos, [bmin,bmax]. El primer elemento indica el primer borde del bin. El segundo elemento indica el último borde del bin.

Esta opción realiza el cálculo utilizando solo los datos que se encuentran dentro de los límites de los bins, ambos incluidos, X>=bmin & X<=bmax.

Esta opción no se aplica a datos categóricos.

Ejemplo: histogram(X,'BinLimits',[1,10]) agrupa solamente los valores de X que se encuentran entre 1 y 10, ambos incluidos.

Modo de selección para límites de bins, especificado como 'auto' o 'manual'. El valor predeterminado es 'auto', de forma que los límites de bins se ajusten automáticamente a los datos.

  • Si especifica BinLimits o BinEdges, BinLimitsMode se establece en 'manual'. Especifique BinLimitsMode como 'auto' para volver a escalar los límites de los bins a los datos.

  • Esta opción no se aplica a histogramas de datos categóricos.

Algoritmo de discretización, especificado como uno de los valores de esta tabla.

Valor

Descripción

'auto'

El algoritmo predeterminado 'auto' elige un ancho de bin para cubrir el intervalo de datos y revelar la forma de la distribución subyacente.

'scott'

La regla de Scott es óptima si los datos están cerca de distribuirse de manera normal. Esta regla también es adecuada para la mayoría de las otras distribuciones. Utiliza una anchura de bin de 3.5*std(X(:))*numel(X)^(-1/3).

'fd'

La regla de Freedman-Diaconis es menos sensible a valores atípicos en los datos y podría ser más adecuada para datos con distribuciones de cola pesada. Utiliza una anchura de bin de 2*iqr(X(:))*numel(X)^(-1/3).

'integers'

La regla de enteros es útil con datos enteros, ya que crea un bin para cada entero. Utiliza una anchura de bin de 1 y coloca bordes de bins a una distancia media entre los enteros.

Para evitar crear accidentalmente demasiados bins, puede usar esta regla para crear un límite de 65.536 bins (216). Si el intervalo de datos es superior a 65.536, la regla de enteros usa bins más anchos.

'integers' no admite datos de marca horaria ni de duración.

'sturges'

La regla de Sturges es popular por su sencillez. Elige el número de bins para que sean ceil(1 + log2(numel(X))).

'sqrt'

La regla de la raíz cuadrada se usa ampliamente en otros paquetes de software. Elige el número de bins para que sean ceil(sqrt(numel(X))).

histogram ajusta ligeramente el número de bins, de manera que los bordes de los bins caigan en "buenos" números, en lugar de usar estas fórmulas exactas.

Para datos datetime o duration, especifique la anchura del bin como una de estas unidades de tiempo.

ValorDescripciónTipo de datos
"second"

Cada bin es de 1 segundo.

datetime y duration
"minute"

Cada bin es de 1 minuto.

datetime y duration
"hour"

Cada bin es de 1 hora.

datetime y duration
"day"

Cada bin es de 1 día natural. Este valor tiene en cuenta los cambios de horario de verano.

datetime y duration
"week"Cada bin es de 1 semana natural.Solo datetime
"month"Cada bin es de 1 mes natural.Solo datetime
"quarter"Cada bin es de 1 trimestre natural.Solo datetime
"year"

Cada bin es de 1 año natural. Este valor tiene en cuenta los años bisiestos.

datetime y duration
"decade"Cada bin es de 1 década (10 años naturales).Solo datetime
"century"Cada bin es de 1 siglo (100 años naturales).Solo datetime

  • Si especifica BinMethod con datos datetime o duration, histogram puede usar un máximo de 65.536 bins (o 216). Si la duración de bins especificada requiere más bins, histogram usa una anchura de bin más grande, correspondiente al número máximo de bins.

  • Si especifica BinLimits, NumBins, BinEdges o BinWidth, BinMethod se establece en 'manual'.

  • Si especifica BinMethod con BinWidth, NumBins o BinEdges, histogram solo respeta el último parámetro.

  • Esta opción no se aplica a datos categóricos.

Ejemplo: histogram(X,'BinMethod','integers') centra los bins en enteros.

Categorías

expandir todo

Orden de visualización de categorías, especificado como 'data', 'ascend' o 'descend'.

  • 'data': usa el orden de la categoría en los datos de entrada C.

  • 'ascend': muestra el histograma con la altura de las barras en orden creciente.

  • 'descend': muestra el histograma con la altura de las barras en orden decreciente.

Esta opción solo funciona con datos categóricos.

Número de categorías que mostrar, especificado como escalar. Puede cambiar el orden de las categorías que se muestran en el histograma mediante la opción 'DisplayOrder'.

Esta opción solo funciona con datos categóricos.

Cambie la visualización del resumen de los datos que pertenecen a categorías que no se muestran, especificados como 'on' u 'off', o como 1 (true) o 0 (false) numérico o lógico. Un valor de 'on' equivale a true, y 'off' equivale a false. En consecuencia, puede utilizar el valor de esta propiedad como valor lógico. El valor se guarda como valor lógico activado/desactivado del tipo matlab.lang.OnOffSwitchState.

  • Configure esta opción como 'on' para que aparezca una barra adicional en el histograma con el nombre 'Others'. Esta barra extra cuenta todos los elementos que no pertenecen a categorías que se muestran en el histograma.

  • Puede cambiar el número de categorías que se muestran en el histograma, así como su orden, mediante las opciones 'NumDisplayBins' y 'DisplayOrder'.

  • Esta opción solo funciona con datos categóricos.

Datos

expandir todo

Tipo de normalización, especificado como uno de los valores de esta tabla. Para cada bin i:

  • vi es el valor del bin.

  • ci es el número de elementos del bin.

  • wi es la anchura del bin.

  • N es el número de elementos de los datos de entrada. Este valor puede ser superior a los datos incluidos en el bin si estos contienen valores faltantes, como NaN, o si algunos de los datos se encuentran fuera de los límites del bin.

ValorValores del binNotas
'count' (valor predeterminado)

vi=ci

  • Número o frecuencia de las observaciones.

  • La suma de los valores de los bins es como máximo numel(X), o sum(ismember(X(:),Categories)) para datos categóricos. La suma es inferior solo cuando algunos de los datos de entrada no están incluidos en los bins.

'probability'

vi=ciN

  • Probabilidad relativa.

  • El número de elementos en cada bin con respecto al número total de elementos en los datos de entrada es como máximo 1.

'percentage'

vi=100*ciN

  • Porcentaje relativo.

  • 'percentage' no es compatible con datos categóricos.

  • El porcentaje de elementos en cada bin es como máximo 100.

'countdensity'

vi=ciwi

  • Frecuencia o número escalado por anchura del bin.

  • Para datos categóricos, esto es igual que 'count'.

  • 'countdensity' no es compatible con datos datetime o duration.

  • La suma de las áreas de los bins es como máximo numel(X).

'cumcount'

vi=j=1icj

  • Recuento acumulado o número de observaciones de cada bin y de todos los bins anteriores.

  • N(end) es como máximo numel(X), o sum(ismember(X(:),Categories)) para datos categóricos.

'pdf'

vi=ciNwi

  • Cálculo de la función de densidad de la probabilidad.

  • Para datos categóricos, esto es igual que 'probability'.

  • 'pdf' no es compatible con datos datetime o duration.

  • La suma de las áreas de los bins es como máximo 1.

'cdf'

vi=j=1icjN

  • Cálculo de la función de distribución acumulada.

  • El recuento de cada bin equivale al número relativo acumulado de observaciones del bin y de todos los bins anteriores.

  • N(end) es como máximo 1.

Ejemplo: histogram(X,'Normalization','pdf') agrupa los datos usando una estimación de la función de densidad de probabilidad.

Color y estilo

expandir todo

Estilo de visualización del histograma, especificado como 'bar' o 'stairs'.

  • 'bar': muestra una gráfica de barras para el histograma sobre cada ventana de A. Este método es útil para reducir las tendencias periódicas de los datos.

  • 'stairs': muestra una gráfica de escalones que representa el contorno del histograma sin rellenar el interior.

Ejemplo: histogram(X,'DisplayStyle','stairs') representa el contorno del histograma.

Orientación de las barras, especificada como 'vertical' u 'horizontal'.

Ejemplo: histogram(X,'Orientation','horizontal') crea una gráfica de histograma con barras horizontales.

Anchura relativa de las barras categóricas, especificada como un valor escalar en el intervalo [0,1]. Use esta propiedad para controlar la separación de las barras categóricas en el histograma. El valor predeterminado es 0.9, lo que significa que el ancho de la barra es el 90% del espacio desde la barra anterior a la siguiente barra, con un 5% de ese espacio a cada lado.

Si BarWidth es 1, las barras adyacentes se tocan.

Esta opción solo funciona con datos categóricos.

Ejemplo: 0.5

Color de las barras del histograma, especificado como uno de estos valores:

  • 'none': las barras no se rellenan.

  • 'auto': el color de las barras del histograma se elige automáticamente (valor predeterminado).

  • Triplete RGB, código de color hexadecimal o nombre del color: las barras se rellenan con el color especificado.

    Los tripletes RGB y los códigos de color hexadecimales son útiles para especificar colores personalizados.

    • Un triplete RGB es un vector fila de tres elementos, cuyos elementos especifican las intensidades de los componentes rojo, verde y azul del color. Las intensidades deben estar en el rango [0,1]; por ejemplo, [0.4 0.6 0.7].

    • Un código de color hexadecimal es un vector de caracteres o un escalar de cadena que comienza con el símbolo de almohadilla (#) seguido de tres o seis dígitos hexadecimales, que pueden oscilar entre 0 y F. Los valores no distinguen entre mayúsculas y minúsculas. Así, los códigos de color "#FF8800", "#ff8800", "#F80" y "#f80" son equivalentes.

    Como alternativa, puede especificar algunos colores frecuentes por su nombre. En esta tabla se enumeran las opciones de color con su nombre, los tripletes RGB equivalentes y los códigos de color hexadecimales.

    Nombre del colorNombre cortoTriplete RGBCódigo de color hexadecimalApariencia
    "red""r"[1 0 0]"#FF0000"

    Sample of the color red

    "green""g"[0 1 0]"#00FF00"

    Sample of the color green

    "blue""b"[0 0 1]"#0000FF"

    Sample of the color blue

    "cyan" "c"[0 1 1]"#00FFFF"

    Sample of the color cyan

    "magenta""m"[1 0 1]"#FF00FF"

    Sample of the color magenta

    "yellow""y"[1 1 0]"#FFFF00"

    Sample of the color yellow

    "black""k"[0 0 0]"#000000"

    Sample of the color black

    "white""w"[1 1 1]"#FFFFFF"

    Sample of the color white

    A continuación, se indican los tripletes RGB y los códigos de color hexadecimales de los colores predeterminados que MATLAB® utiliza en muchos tipos de gráficas.

    Triplete RGBCódigo de color hexadecimalApariencia
    [0 0.4470 0.7410]"#0072BD"

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980]"#D95319"

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250]"#EDB120"

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560]"#7E2F8E"

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880]"#77AC30"

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330]"#4DBEEE"

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840]"#A2142F"

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

Si especifica DisplayStyle como 'stairs', histogram no usa la propiedad FaceColor.

Ejemplo: histogram(X,'FaceColor','g') crea una gráfica de histograma con barras de color verde.

Color de los bordes del histograma, especificado como uno de estos valores:

  • 'none': los bordes no se representan.

  • 'auto': el color de cada borde se elige automáticamente.

  • Triplete RGB, código de color hexadecimal o nombre del color: los bordes usan el color especificado.

    Los tripletes RGB y los códigos de color hexadecimales son útiles para especificar colores personalizados.

    • Un triplete RGB es un vector fila de tres elementos, cuyos elementos especifican las intensidades de los componentes rojo, verde y azul del color. Las intensidades deben estar en el rango [0,1]; por ejemplo, [0.4 0.6 0.7].

    • Un código de color hexadecimal es un vector de caracteres o un escalar de cadena que comienza con el símbolo de almohadilla (#) seguido de tres o seis dígitos hexadecimales, que pueden oscilar entre 0 y F. Los valores no distinguen entre mayúsculas y minúsculas. Así, los códigos de color "#FF8800", "#ff8800", "#F80" y "#f80" son equivalentes.

    Como alternativa, puede especificar algunos colores frecuentes por su nombre. En esta tabla se enumeran las opciones de color con su nombre, los tripletes RGB equivalentes y los códigos de color hexadecimales.

    Nombre del colorNombre cortoTriplete RGBCódigo de color hexadecimalApariencia
    "red""r"[1 0 0]"#FF0000"

    Sample of the color red

    "green""g"[0 1 0]"#00FF00"

    Sample of the color green

    "blue""b"[0 0 1]"#0000FF"

    Sample of the color blue

    "cyan" "c"[0 1 1]"#00FFFF"

    Sample of the color cyan

    "magenta""m"[1 0 1]"#FF00FF"

    Sample of the color magenta

    "yellow""y"[1 1 0]"#FFFF00"

    Sample of the color yellow

    "black""k"[0 0 0]"#000000"

    Sample of the color black

    "white""w"[1 1 1]"#FFFFFF"

    Sample of the color white

    A continuación, se indican los tripletes RGB y los códigos de color hexadecimales de los colores predeterminados que MATLAB utiliza en muchos tipos de gráficas.

    Triplete RGBCódigo de color hexadecimalApariencia
    [0 0.4470 0.7410]"#0072BD"

    Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

    [0.8500 0.3250 0.0980]"#D95319"

    Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

    [0.9290 0.6940 0.1250]"#EDB120"

    Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

    [0.4940 0.1840 0.5560]"#7E2F8E"

    Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

    [0.4660 0.6740 0.1880]"#77AC30"

    Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

    [0.3010 0.7450 0.9330]"#4DBEEE"

    Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

    [0.6350 0.0780 0.1840]"#A2142F"

    Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

Ejemplo: histogram(X,'EdgeColor','r') crea una gráfica de histograma con los bordes de las barras de color rojo.

Transparencia de las barras del histograma, especificada como valor escalar en el intervalo [0,1]. histogram usa la misma transparencia para todas las barras del histograma. Un valor de 1 significa totalmente opaco y 0 significa totalmente transparente (invisible).

Ejemplo: histogram(X,'FaceAlpha',1) crea una gráfica de histograma con barras completamente opacas.

Transparencia de los bordes de las barras del histograma, especificada como valor escalar en el intervalo [0,1]. Un valor de 1 significa totalmente opaco y 0 significa totalmente transparente (invisible).

Ejemplo: histogram(X,'EdgeAlpha',0.5) crea una gráfica de histograma con los bordes de las barras semitransparentes.

Estilo de línea, especificado como una de las opciones enumeradas en esta tabla.

Estilo de líneaDescripciónLínea resultante
"-"Línea continua

Sample of solid line

"--"Línea discontinua

Sample of dashed line

":"Línea de puntos

Sample of dotted line

"-."Línea de puntos y rayas

Sample of dash-dotted line, with alternating dashes and dots

"none"Sin líneaSin línea

Anchura de los contornos de las barras, especificada como valor positivo en unidades de punto. Un punto equivale a 1/72 pulgadas.

Ejemplo: 1.5

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Argumentos de salida

expandir todo

Histograma, devuelto como objeto. Para obtener más información, consulte Histogram Properties.

Propiedades

Histogram PropertiesHistogram appearance and behavior

Funciones del objeto

morebinsIncrease number of histogram bins
fewerbinsDecrease number of histogram bins

Ejemplos

contraer todo

Genere 10.000 números aleatorios y cree un histograma. La función histogram elige automáticamente un número adecuado de bins para cubrir el intervalo de valores de x y mostrar la forma de la distribución subyacente.

x = randn(10000,1);
h = histogram(x)

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

h = 
  Histogram with properties:

             Data: [10000x1 double]
           Values: [2 2 1 6 7 17 29 57 86 133 193 271 331 421 540 613 730 748 776 806 824 721 623 503 446 326 234 191 132 78 65 33 26 11 8 5 5]
          NumBins: 37
         BinEdges: [-3.8000 -3.6000 -3.4000 -3.2000 -3 -2.8000 -2.6000 -2.4000 -2.2000 -2 -1.8000 -1.6000 -1.4000 -1.2000 -1 -0.8000 -0.6000 -0.4000 -0.2000 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 2.2000 ... ] (1x38 double)
         BinWidth: 0.2000
        BinLimits: [-3.8000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Use GET to show all properties

Cuando especifica un argumento de salida en la función histogram, devuelve un objeto de histograma. Puede usar este objeto para inspeccionar las propiedades del histograma, como el número de bins o la anchura de estos.

Busque el número de bins del histograma.

nbins = h.NumBins
nbins = 37

Represente un histograma de 1000 números aleatorios ordenados en 25 bins equidistantes.

x = randn(1000,1);
nbins = 25;
h = histogram(x,nbins)

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [1 3 0 6 14 19 31 54 74 80 92 122 104 115 88 80 38 32 21 9 5 5 5 0 2]
          NumBins: 25
         BinEdges: [-3.4000 -3.1200 -2.8400 -2.5600 -2.2800 -2 -1.7200 -1.4400 -1.1600 -0.8800 -0.6000 -0.3200 -0.0400 0.2400 0.5200 0.8000 1.0800 1.3600 1.6400 1.9200 2.2000 2.4800 2.7600 3.0400 3.3200 3.6000]
         BinWidth: 0.2800
        BinLimits: [-3.4000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Use GET to show all properties

Halle los recuentos de los bins.

counts = h.Values
counts = 1×25

     1     3     0     6    14    19    31    54    74    80    92   122   104   115    88    80    38    32    21     9     5     5     5     0     2

Genere 1000 números aleatorios y cree un histograma.

X = randn(1000,1);
h = histogram(X)

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [3 1 2 15 17 27 53 79 85 101 127 110 124 95 67 32 27 16 6 6 4 1 2]
          NumBins: 23
         BinEdges: [-3.3000 -3.0000 -2.7000 -2.4000 -2.1000 -1.8000 -1.5000 -1.2000 -0.9000 -0.6000 -0.3000 0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000 2.1000 2.4000 2.7000 3 3.3000 3.6000]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Use GET to show all properties

Use la función morebins para ajustar "grosso modo" el número de bins.

Nbins = morebins(h);
Nbins = morebins(h)

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

Nbins = 29

Especifique explícitamente el número de bins para ajustar los bins con más precisión.

h.NumBins = 31;

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

Genere 1000 números aleatorios y cree un histograma. Especifique los bordes de los bins como vector con bins amplios en los bordes del histograma para capturar los valores atípicos que no satisfacen |x|<2. El elemento del primer vector es el borde izquierdo del primer bin, y el elemento del último vector es el borde derecho del último bin.

x = randn(1000,1);
edges = [-10 -2:0.25:2 10];
h = histogram(x,edges);

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

Especifique la propiedad Normalization como 'countdensity' para allanar los bins que contienen los valores atípicos. Ahora, el área de cada bin (en lugar de la altura) representa la frecuencia de las observaciones en ese intervalo.

h.Normalization = 'countdensity';

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

Cree un vector categórico que represente votos. Las categorías del vector son 'yes', 'no' o 'undecided'.

A = [0 0 1 1 1 0 0 0 0 NaN NaN 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1];
C = categorical(A,[1 0 NaN],{'yes','no','undecided'})
C = 1x27 categorical
     no      no      yes      yes      yes      no      no      no      no      undecided      undecided      yes      no      no      no      yes      no      yes      no      yes      no      no      no      yes      yes      yes      yes 

Represente un histograma categórico de los votos, usando una anchura de barra relativa de 0.5.

h = histogram(C,'BarWidth',0.5)

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

h = 
  Histogram with properties:

              Data: [no    no    yes    yes    yes    no    no    no    no    undecided    undecided    yes    no    no    no    yes    no    yes    no    yes    no    no    no    yes    yes    yes    yes]
            Values: [11 14 2]
    NumDisplayBins: 3
        Categories: {'yes'  'no'  'undecided'}
      DisplayOrder: 'data'
     Normalization: 'count'
      DisplayStyle: 'bar'
         FaceColor: 'auto'
         EdgeColor: [0 0 0]

  Use GET to show all properties

Genere 1000 números aleatorios y cree un histograma usando la normalización de 'probability'.

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

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [0.0030 1.0000e-03 0.0020 0.0150 0.0170 0.0270 0.0530 0.0790 0.0850 0.1010 0.1270 0.1100 0.1240 0.0950 0.0670 0.0320 0.0270 0.0160 0.0060 0.0060 0.0040 1.0000e-03 0.0020]
          NumBins: 23
         BinEdges: [-3.3000 -3.0000 -2.7000 -2.4000 -2.1000 -1.8000 -1.5000 -1.2000 -0.9000 -0.6000 -0.3000 0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000 2.1000 2.4000 2.7000 3 3.3000 3.6000]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'probability'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Use GET to show all properties

Calcule la suma de las alturas de las barras. Con esta normalización, la altura de cada barra equivale a la probabilidad de seleccionar una observación en ese intervalo de barras, y la altura de todas las barras suma 1.

S = sum(h.Values)
S = 1

Genere 100.000 números aleatorios distribuidos de manera normal. Use una desviación estándar de 15 y una media de 100.

x = 100 + 15*randn(1e5,1);

Represente un histograma de los números aleatorios. Escale y etiquete el eje y como porcentajes.

edges = 55:15:145;
histogram(x,edges,Normalization="percentage")
ytickformat("percentage")

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

Genere dos vectores de números aleatorios y represente un histograma para cada vector en la misma figura.

x = randn(2000,1);
y = 1 + randn(5000,1);
h1 = histogram(x);
hold on
h2 = histogram(y);

Figure contains an axes object. The axes object contains 2 objects of type histogram.

Dado que el tamaño de la muestra y la anchura de bins de los histogramas son diferentes, es difícil compararlos. Normalice los histogramas para que las alturas de las barras sumen 1 y use una anchura de bins uniforme.

h1.Normalization = 'probability';
h1.BinWidth = 0.25;
h2.Normalization = 'probability';
h2.BinWidth = 0.25;

Figure contains an axes object. The axes object contains 2 objects of type histogram.

Genere 1000 números aleatorios y cree un histograma. Devuelva el objeto de histograma para ajustar las propiedades del histograma sin volver a crear toda la gráfica.

x = randn(1000,1);
h = histogram(x)

h = 
  Histogram with properties:

             Data: [1000×1 double]
           Values: [3 1 2 15 17 27 53 79 85 101 127 110 124 95 67 32 27 16 6 6 4 1 2]
          NumBins: 23
         BinEdges: [-3.3000 -3.0000 -2.7000 -2.4000 -2.1000 -1.8000 -1.5000 -1.2000 -0.9000 -0.6000 -0.3000 0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000 2.1000 2.4000 2.7000 3 3.3000 3.6000]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

Especifique exactamente cuántos bins desea usar.

h.NumBins = 15;

Especifique los bordes de los bins con un vector. El primer valor del vector es el borde izquierdo del primer bin. El último valor es el borde derecho del último bin.

h.BinEdges = [-3:3];

Cambie el color de las barras del histograma.

h.FaceColor = [0 0.5 0.5];
h.EdgeColor = 'r';

Genere 5000 números aleatorios distribuidos normalmente con una media de 5 y una desviación estándar de 2. Represente un histograma con Normalization establecido en 'pdf' para generar un cálculo de la función de densidad de probabilidad.

x = 2*randn(5000,1) + 5;
histogram(x,'Normalization','pdf')

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

En este ejemplo, se conoce la distribución subyacente de los datos distribuidos normalmente. Sin embargo, puede usar la representación del histograma 'pdf' para determinar la distribución de probabilidad subyacente de los datos comparándola con una función conocida de densidad de probabilidad.

La función de densidad de probabilidad de una distribución normal con media μ, desviación estándar σ y varianza σ2 es

f(x,μ,σ)=1σ2π exp[-(x-μ)22σ2].

Superponga una representación de la función de densidad de probabilidad para una distribución normal con una media de 5 y una desviación estándar de 2.

hold on
y = -5:0.1:15;
mu = 5;
sigma = 2;
f = exp(-(y-mu).^2./(2*sigma^2))./(sigma*sqrt(2*pi));
plot(y,f,'LineWidth',1.5)

Figure contains an axes object. The axes object contains 2 objects of type histogram, line.

Use la función savefig para guardar una figura de histogram.

histogram(randn(10));
savefig('histogram.fig');
close gcf

Use openfig para volver a cargar la figura de histograma en MATLAB®. openfig también devuelve un identificador para la figura, h.

h = openfig('histogram.fig');

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

Use la función findobj para encontrar el identificador de objeto correcto a partir del identificador de la figura. De este modo podrá seguir manipulando el objeto de histograma original utilizado para generar la figura.

y = findobj(h,'type','histogram')
y = 
  Histogram with properties:

             Data: [10x10 double]
           Values: [2 17 28 32 16 3 2]
          NumBins: 7
         BinEdges: [-3 -2 -1 0 1 2 3 4]
         BinWidth: 1
        BinLimits: [-3 4]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Use GET to show all properties

Sugerencias

  • Las gráficas de histograma creadas mediante histogram tienen un menú contextual en el modo de edición de gráfica que permite manipulaciones interactivas en la ventana de la figura. Por ejemplo, puede usar el menú contextual para cambiar interactivamente el número de bins, alinear varios histogramas o cambiar el orden de visualización.

  • Cuando añade consejos sobre datos a una gráfica de histograma, se muestran los bordes de los bins y el recuento de bins.

Capacidades ampliadas

Historial de versiones

Introducido en R2014b

expandir todo