El histograma es una representación gráfica de los datos. Podemos representar cualquier tipo de datos numéricos en formato de histograma. En este artículo vamos a ver cómo crear un histograma acumulativo en Matplotlib
Frecuencia acumulativa: El análisis de frecuencia acumulativa es el análisis de la frecuencia de aparición de valores. Es el total de una frecuencia y todas las frecuencias hasta el momento en una distribución de frecuencia.
Ejemplo:
X contiene [1,2,3,4,5], entonces la frecuencia acumulada para x es [1,3,6,10,15].
Explicación:
[1,1+2,1+2+3,1+2+3+4,1+2+3+4+5]
En Python, podemos generar un histograma con dataframe.hist y el histograma de frecuencia acumulada stats.cumfreq() .
Ejemplo 1:
Python3
# importing pyplot for getting graph import matplotlib.pyplot as plt # importing numpy for getting array import numpy as np # importing scientific python from scipy import stats # list of values x = [10, 40, 20, 10, 30, 10, 56, 45] res = stats.cumfreq(x, numbins=4, defaultreallimits=(1.5, 5)) # generating random values rng = np.random.RandomState(seed=12345) # normalizing samples = stats.norm.rvs(size=1000, random_state=rng) res = stats.cumfreq(samples, numbins=25) x = res.lowerlimit + np.linspace(0, res.binsize*res.cumcount.size, res.cumcount.size) # specifying figure size fig = plt.figure(figsize=(10, 4)) # adding sub plots ax1 = fig.add_subplot(1, 2, 1) # adding sub plots ax2 = fig.add_subplot(1, 2, 2) # getting histogram using hist function ax1.hist(samples, bins=25, color="green") # setting up the title ax1.set_title('Histogram') # cumulative graph ax2.bar(x, res.cumcount, width=4, color="blue") # setting up the title ax2.set_title('Cumulative histogram') ax2.set_xlim([x.min(), x.max()]) # display hte figure(histogram) plt.show()
Producción:
Ejemplo 2:
Python3
# importing numpy for getting array import numpy as np # importing scientific python from scipy import stats # list of values x = [10, 40, 20, 10, 30, 10, 56, 45] res = stats.cumfreq(x, numbins=4, defaultreallimits=(1.5, 5)) # generating random values rng = np.random.RandomState(seed=12345) # normalizing samples = stats.norm.rvs(size=1000, random_state=rng) res = stats.cumfreq(samples, numbins=25) x = res.lowerlimit + np.linspace(0, res.binsize*res.cumcount.size, res.cumcount.size) fig = plt.figure(figsize=(10, 4)) ax1 = fig.add_subplot(1, 2, 1) ax2 = fig.add_subplot(1, 2, 2) ax1.hist(samples, bins=25, color="green") ax1.set_title('Histogram') ax2.bar(x, x, width=2, color="blue") ax2.set_title('Cumulative histogram') ax2.set_xlim([x.min(), x.max()]) plt.show()
Producción:
Publicación traducida automáticamente
Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA