es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo dibujar histogramas bajo una curva?

Supongamos que tenemos una función (como la función de densidad de una distribución normal) y queremos aproximarla con histogramas bajo la función. Quiero especificar el número de intervalos y dibujar los histogramas bajo la curva. ¿Cómo es posible hacer esto en Python? Por ejemplo, un gráfico como el que se muestra a continuación, pero con todas las barras debajo de la curva, y el número de intervalos es un parámetro.

Imagen del gráfico

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para aproximar una función utilizando histogramas en Python, podemos usar la biblioteca matplotlib. Podemos generar el histograma y trazar la función en el mismo gráfico siguiendo los siguientes pasos:

    1. Generar los puntos de datos para la función que queremos trazar, por ejemplo, la distribución normal.
    2. Generar el histograma utilizando los datos y especificar el número de compartimientos utilizando el parámetro ‘bins’.

    3. Normalizar el histograma para que el área bajo la curva sea igual a 1.

    4. Trazar el histograma y la función en el mismo gráfico utilizando la función ‘plot’.

    Aquí tienes un ejemplo de código:

    import numpy as np
    import matplotlib.pyplot as plt
    
    # Generar datos para una distribución normal
    x = np.linspace(-4, 4, 100)
    y = np.exp(-x**2/2) / np.sqrt(2*np.pi)
    
    # Generar histograma
    data = np.random.randn(10000)
    hist, bins = np.histogram(data, bins=50, density=True)
    
    # Trazar histograma y función
    plt.hist(data, bins=bins, density=True)
    plt.plot(x, y, 'r')
    plt.show()
    

    En este ejemplo, primero generamos los puntos de datos para la distribución normal utilizando numpy. Luego, generamos un conjunto de datos de números aleatorios utilizando la función ‘random.randn’ de numpy, que genera muestras de una distribución normal estándar. Luego generamos el histograma utilizando la función ‘histogram’ y establecemos el parámetro ‘density’ en True para que el histograma esté normalizado. Trazamos el histograma y la función utilizando la función ‘plot’.

    Podemos ajustar el número de compartimientos cambiando el parámetro ‘bins’ en la función ‘histogram’. El gráfico resultante debería tener picos bajo la función, como se ve en la imagen de ejemplo proporcionada.

Comments are closed.