En este artículo, crearemos un gráfico de ojiva. Un gráfico de ojiva también se puede llamar histograma acumulativo, este gráfico se usa para determinar la cantidad de valores que se encuentran por encima o por debajo de un valor particular en un conjunto de datos. El intervalo de clase se representa en el eje x, mientras que la frecuencia acumulada se representa en el eje y. Estos puntos se trazan en el gráfico y se unen mediante líneas.
NumPy tiene una función llamada histograma() que representa gráficamente la frecuencia de los datos en un rango de conjunto particular. La función de histograma devuelve dos valores, el primero es la frecuencia y se almacena en los valores y el segundo son los valores bin o el intervalo entre los cuales se encuentran los números del conjunto de datos, se almacena en la variable base.
Después de esto, calcularemos la suma acumulativa que se puede hacer fácilmente con la función cumsum() , que devuelve la suma acumulativa a lo largo de un eje en particular. Por último, trazaremos el gráfico usando la función plot() y pasando base como valor del eje x y cumsum como valor del eje y. Podemos formatear el gráfico usando marcadores, color y atributos de líneas.
Ejemplo 1: (Gráfico de más de ojiva)
El gráfico de más de ojiva muestra el número de valores mayores que los intervalos de clase. El gráfico resultante muestra el número de valores entre el intervalo de clase. Por ejemplo, 0-10,10-20 y así sucesivamente. Tomemos un conjunto de datos, y ahora trazaremos su gráfico más que ojiva: [22,87,5,43,56,73, 55,54,11,20,51,5,79,31,27].
Tabla que representa los intervalos, la frecuencia y la frecuencia acumulada (menor que)-
Intervalo de clases | Frecuencia | Frecuencia acumulada |
0-10 | 2 | 2 |
10-20 | 1 | 3 |
20-30 | 3 | 6 |
30-40 | 1 | 7 |
40-50 | 1 | 8 |
50-60 | 4 | 12 |
60-70 | 0 | 12 |
70-80 | 2 | 14 |
80-90 | 1 | 15 |
Acercarse:
- Importe los módulos (matplotlib y numpy).
- Calcule la frecuencia y la frecuencia acumulada de los datos.
- Trazarlo usando la función plot().
Python3
# importing modules import numpy as np import matplotlib.pyplot as plt # creating dataset data = [22, 87, 5, 43, 56, 73, 55, 54, 11, 20, 51, 5, 79, 31, 27] # creating class interval classInterval = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] # calculating frequency and class interval values, base = np.histogram(data, bins=classInterval) # calculating cumulative sum cumsum = np.cumsum(values) # plotting the ogive graph plt.plot(base[1:], cumsum, color='red', marker='o', linestyle='-') # formatting plt.title('Ogive Graph') plt.xlabel('Marks in End-Term') plt.ylabel('Cumulative Frequency')
Producción:
Ejemplo 2: (Gráfico menor que ojiva)
En este ejemplo, trazaremos un gráfico de ojiva menor que mostrará los valores menores de los intervalos de clase. Conjunto de datos:[44,27,5,2,43,56,77,53,89,54,11,23, 51,5,79,25,39]
Tabla que representa los intervalos, la frecuencia y la frecuencia acumulada (más de)-
Intervalo de clases | Frecuencia | Frecuencia acumulada |
0-10 | 3 | 17 |
10-20 | 1 | dieciséis |
20-30 | 3 | 14 |
30-40 | 1 | 14 |
40-50 | 2 | 10 |
50-60 | 4 | 8 |
60-70 | 0 | 7 |
70-80 | 2 | 4 |
80-90 | 1 | 3 |
El enfoque es el mismo que el anterior, solo que la suma acumulativa que calcularemos se invertirá utilizando la función flipud() presente en la biblioteca numpy.
Python3
# importing modules import numpy as np import matplotlib.pyplot as plt # creating dataset data = [44, 27, 5, 2, 43, 56, 77, 53, 89, 54, 11, 23, 51, 5, 79, 25, 39] # creating class interval classInterval = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] # calculating frequency and intervals values, base = np.histogram(data, bins=classInterval) # calculating cumulative frequency cumsum = np.cumsum(values) # reversing cumulative frequency res = np.flipud(cumsum) # plotting ogive plt.plot(base[1:], res, color='brown', marker='o', linestyle='-') # formatting the graph plt.title('Ogive Graph') plt.xlabel('Marks in End-Term') plt.ylabel('Cumulative Frequency')
Producción:
Publicación traducida automáticamente
Artículo escrito por adityaprasad1308 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA