Histograma de Matplotlib
Podemos usar el método hist() de pyplot para dibujar histogramas.
El método hist() es una función en el submódulo pyplot de la biblioteca Matplotlib que se utiliza para dibujar histogramas.
El método hist() se puede utilizar para visualizar la distribución de los datos, por ejemplo, para observar la tendencia central, la asimetría y los valores atípicos de los datos.
La sintaxis del método hist() es la siguiente:
matplotlib.pyplot.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, **kwargs)
Descripción de parámetros:
x: Indica los datos para dibujar el histograma, puede ser un array unidimensional o una lista.bins: Parámetro opcional, indica el número de bins del histograma. El valor predeterminado es 10.range: Parámetro opcional, indica el rango de valores del histograma, puede ser una tupla o una lista. El valor predeterminado es None, es decir, se utilizan los valores mínimo y máximo de los datos.density: Parámetro opcional, indica si se normaliza el histograma. El valor predeterminado es False, es decir, la altura del histograma es el número de muestras en cada bin, no la frecuencia o la densidad de probabilidad.weights: Parámetro opcional, indica el peso de cada punto de datos. El valor predeterminado es None.cumulative: Parámetro opcional, indica si se dibuja el gráfico de distribución acumulativa. El valor predeterminado es False.bottom: Parámetro opcional, indica la altura inicial del histograma. El valor predeterminado es None.histtype: Parámetro opcional, indica el tipo de histograma, puede ser 'bar', 'barstacked', 'step', 'stepfilled', etc. El valor predeterminado es 'bar'.align: Parámetro opcional, indica la alineación de los bins del histograma, puede ser 'left', 'mid', 'right'. El valor predeterminado es 'mid'.orientation: Parámetro opcional, indica la orientación del histograma, puede ser 'vertical', 'horizontal'. El valor predeterminado es 'vertical'.rwidth: Parámetro opcional, indica el ancho de cada bin. El valor predeterminado es None.log: Parámetro opcional, indica si se usa escala logarítmica en el eje y. El valor predeterminado es False.color: Parámetro opcional, indica el color del histograma.label: Parámetro opcional, indica la etiqueta del histograma.stacked: Parámetro opcional, indica si se apilan diferentes histogramas. El valor predeterminado es False.**kwargs: Parámetro opcional, indica otros parámetros de trazado.
En el siguiente ejemplo, usamos simplemente hist() para crear un histograma:
Ejemplo
import numpy as np
# Generar un conjunto de datos aleatorios
data = np.random.randn(1000)
# Dibujar el histograma
plt.hist(data, bins=30, color='skyblue', alpha=0.8)
# Configurar las propiedades del gráfico
plt.title('EJEMPLO hist() Test')
plt.xlabel('Value')
plt.ylabel('Frequency')
# Mostrar el gráfico
plt.show()
El resultado se muestra a continuación:

El siguiente ejemplo demuestra cómo usar la función hist() para dibujar histogramas de varios conjuntos de datos y compararlos:
Ejemplo
import numpy as np
# Generar tres conjuntos de datos aleatorios
data1 = np.random.normal(0, 1, 1000)
data2 = np.random.normal(2, 1, 1000)
data3 = np.random.normal(-2, 1, 1000)
# Dibujar los histogramas
plt.hist(data1, bins=30, alpha=0.5, label='Data 1')
plt.hist(data2, bins=30, alpha=0.5, label='Data 2')
plt.hist(data3, bins=30, alpha=0.5, label='Data 3')
# Configurar las propiedades del gráfico
plt.title('EJEMPLO hist() TEST')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.legend()
# Mostrar el gráfico
plt.show()
En el ejemplo anterior, generamos tres conjuntos de datos aleatorios diferentes y usamos la función hist() para dibujar sus histogramas. Al establecer diferentes medias y desviaciones estándar, podemos generar datos aleatorios con diferentes características de distribución.
Configuramos el parámetro bins en 30, lo que significa dividir el rango de datos en 30 intervalos de igual ancho, y luego contar la frecuencia de los datos en cada intervalo.
Configuramos el parámetro alpha en 0.5, lo que significa que la transparencia de color de cada histograma es del 50%.Usamos el parámetro label para establecer la etiqueta de cada histograma, de modo que se muestre en la leyenda.
Luego usamos la función legend() para mostrar la leyenda. Finalmente, usamos las funciones title(), xlabel() y ylabel() para establecer el título del gráfico y las etiquetas de los ejes.
El resultado se muestra a continuación:

En la figura anterior, podemos ver claramente la distribución de estos tres conjuntos de datos, donde data1 y data2 se acercan a una distribución normal, mientras que data3 tiene una distribución asimétrica.
Esta forma de comparar histogramas puede ayudarnos a analizar y comparar la distribución de diferentes grupos de datos.
Combinar con Pandas
En el siguiente ejemplo, combinamos Pandas para dibujar histogramas:
Ejemplo
import pandas as pd
import matplotlib.pyplot as plt
# Usar NumPy para generar números aleatorios
random_data = np.random.normal(170, 10, 250)
# Convertir los datos a un DataFrame de Pandas
dataframe = pd.DataFrame(random_data)
# Usar el método hist() de Pandas para dibujar histogramas
dataframe.hist()
# Configurar las propiedades del gráfico
plt.title('EJEMPLO hist() Test')
plt.xlabel('X-Value')
plt.ylabel('Y-Value')
# Mostrar el gráfico
plt.show()
El resultado se muestra a continuación:

Además del DataFrame, también puede usar objetos Series de Pandas para dibujar histogramas. Simplemente reemplace las columnas del DataFrame por objetos Series.
Ejemplo
import pandas as pd
import matplotlib.pyplot as plt
# Generar datos aleatorios
data = pd.Series(np.random.normal(size=100))
# Dibujar el histograma
# El parámetro bins especifica el número de barras en el histograma
plt.hist(data, bins=10)
# Establecer el título del gráfico y las etiquetas de los ejes
plt.title('EJEMPLO hist() Tes')
plt.xlabel('X-Values')
plt.ylabel('Y-Values')
# Mostrar el gráfico
plt.show()
