Requisitos previos: Matplotlib
Un histograma es una representación gráfica de la distribución de datos dada por el usuario. Su apariencia es similar a Bar-Graph excepto que es continua.
Las torres o barras de un histograma se denominan bins. La altura de cada contenedor muestra cuántos valores de esos datos caen dentro de ese rango.
El ancho de cada contenedor es = (valor máximo de datos – valor mínimo de datos) / número total de contenedores
El valor predeterminado de la cantidad de contenedores que se crearán en un histograma es 10. Sin embargo, podemos cambiar el tamaño de los contenedores usando el parámetro contenedores en matplotlib.pyplot.hist().
Método 1 :
Podemos pasar un número entero en bins indicando cuántos bins/torres se crearán en el histograma y el ancho de cada bin se cambiará en consecuencia.
Ejemplo 1 :
Python3
import matplotlib.pyplot as plt height = [189, 185, 195, 149, 189, 147, 154, 174, 169, 195, 159, 192, 155, 191, 153, 157, 140, 144, 172, 157, 181, 182, 166, 167] plt.hist(height, edgecolor="red", bins=5) plt.show()
Producción :
Aquí, los contenedores = 5, es decir, el número de contenedores que se crearán es 5. Establecer los contenedores en un número entero crea contenedores del mismo tamaño o ancho. A medida que se cambia el tamaño del contenedor, el ancho del contenedor se cambiaría en consecuencia como:
ancho = (195 – 140) / 5 = 11
Ejemplo 2:
Python3
import matplotlib.pyplot as plt values = [87, 53, 66, 61, 67, 68, 62, 110, 104, 61, 111, 123, 117, 119, 116, 104, 92, 111, 90, 103, 81, 80, 101, 51, 79, 107, 110, 129, 145, 139, 110] plt.hist(values, bins=7, edgecolor="yellow", color="green") plt.show()
Producción :
En el gráfico anterior, el ancho de cada contenedor es:
ancho = ( 145 – 51 ) / 7 = 13,4
Método 2:
También podemos pasar una secuencia de int o float en los contenedores de parámetros. En el que los elementos de la secuencia son los bordes/límites de los contenedores. En este método, el ancho del contenedor puede variar para cada contenedor.
Supongamos que se asigna una secuencia [1,2,3,4,5] a los contenedores y luego el número de contenedores creados será 4, es decir, el primer contenedor será [1,2) (incluyendo 1, pero excluyendo 2) el segundo contenedor será será [2,3) (incluido 2, pero excluyendo 3) el tercer contenedor será [3,4) (incluido 3, pero excluyendo 4). Sin embargo, en el último contenedor [4,5] se incluyen tanto el 4 como el 5.
Por lo tanto, todos los contenedores están entreabiertos [a, b) pero el último contenedor está cerrado [a, b]. Para tales casos, el ancho de cada contenedor es igual.
Si la diferencia entre cada elemento de la secuencia asignada a los contenedores no es igual, entonces el ancho de cada contenedor es diferente, por lo tanto, el ancho del contenedor depende de la secuencia.
Ejemplo 1: igual ancho de contenedor
Python3
import matplotlib.pyplot as plt marks = [1, 2, 3, 2, 1, 2, 3, 2, 1, 4, 5, 4, 3, 2, 5, 4, 5, 4, 5, 3, 2, 1, 5] plt.hist(marks, bins=[1, 2, 3, 4, 5], edgecolor="black") plt.show()
Producción :
Ejemplo 2: ancho de contenedor desigual
Python3
import matplotlib.pyplot as plt data = [189, 185, 195, 149, 189, 147, 154, 174, 169, 195, 159, 192, 155, 191, 153, 157, 140, 144, 172, 157, 181, 182, 166, 167] plt.hist(data, bins=[140, 150, 160, 175, 185, 200], edgecolor="yellow", color="grey") plt.show()
Producción:
Método 3:
Para pasar una secuencia en el parámetro bins, también podemos usar la función de rango para bins igualmente distribuidos. Dentro de range(), el punto inicial es el mínimo de datos, el punto final es el máximo de datos + el ancho del contenedor mencionado, como en range(), el punto final no está incluido y el paso es el ancho del contenedor.
Como el paso está fijo en range(), obtenemos contenedores de igual tamaño en el histograma.
Ejemplo :
Python3
import matplotlib.pyplot as plt data = [87, 53, 66, 61, 67, 68, 62, 110, 104, 61, 111, 123, 117, 119, 116, 104, 92, 111, 90, 103, 81, 80, 101, 51, 79, 107, 110, 129, 145, 128, 132, 135, 131, 126, 139, 110] binwidth = 8 plt.hist(data, bins=range(min(data), max(data) + binwidth, binwidth), edgecolor="yellow", color="brown") plt.show()
Producción :
Publicación traducida automáticamente
Artículo escrito por riyaaggarwaldtu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA