import matplotlib.pyplot as plt
datos = [1,2,2,3,3,5,1,2,5,2,4,5]
plt.title('Ejemplo') #titulo
plt.hist(datos,bins=5) #datos, grupos
plt.show()
plt.clf()
¿Qué es un histograma?¶
Un histograma es una representación gráfica de una variable en forma de barras, donde la superficie de cada barra es proporcional a la frecuencia de los valores representados.[101]
Usando matplotlib para graficar el Histograma¶
Matplotlib es una biblioteca completa para crear visualizaciones estáticas, animadas e interactivas en Python. [102]
# Ponemos el títulos
plt.title('Ejemplo')
# Usamos hist() para graficar el histograma [103]
# indicamos que datos usar para graficar,
# y cuantos grupos crear
plt.hist(datos,bins=5)
# Indicamos que muestre la imagen
plt.show()
# Limpiar la figura actual
plt.clf()
Podemos usar distintas configuraciones para mostrar el gráfico
# parametros para hist()
plt.hist(
datos, # los datos a usar
bins=5, # cuantos grupos crear
color='red' #color de las barras
linewidth=2, # tamaño de los bordes
edgecolor = 'black', # el color de los border
)
# Indicar que muestre el recuadro sobre la imagen
plt.grid(True)
El código completo sería:
import matplotlib.pyplot as plt
datos = [1,2,2,3,3,5,1,2,5,2,4,5]
plt.title('Ejemplo') #titulo
plt.hist(
datos,
bins=5,
color='red',
edgecolor = 'black',
linewidth=2
)
plt.grid(True)
plt.show()
plt.clf()
Cambiando algunos valores tenemos:
import matplotlib.pyplot as plt
datos = [1,2,2,3,3,5,1,2,5,2,4,5]
plt.title('Ejemplo') #titulo
plt.hist(
datos,
bins=5,
color='red',
edgecolor = 'black',
linewidth=1
)
# plt.grid(True)
plt.show()
plt.clf()
Mostrar más de un Histograma¶
import matplotlib.pyplot as plt
datos = [1,2,2,3,3,5,1,2,5,2,4,5]
plt.subplot(121)
plt.title('Histograma 1') #titulo
plt.hist(datos,bins=5)
plt.subplot(122)
plt.title('Histograma 2') #titulo
plt.hist(datos,bins=3,color="red")
plt.grid(True)
plt.show()
plt.clf()
[301]
También podemos usar el siguiente código:
import matplotlib.pyplot as plt
datos = [1,2,2,3,3,5,1,2,5,2,4,5]
fig, axs = plt.subplots(1, 2)
axs[0].hist(datos,bins=5)
axs[1].hist(datos,bins=3,color="red")
plt.show()
plt.clf()
[201]
Graficar un Histograma en 2D¶
Histograma en 2d https://matplotlib.org/3.1.1/gallery/statistics/hist.html
import matplotlib.pyplot as plt
datos = [1,2,2,3,3,5,1,2,5,2,4,5]
fig, axs = plt.subplots()
hist = axs.hist2d(datos,datos)
plt.show()
plt.clf()
import matplotlib.pyplot as plt
x = [1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]
y = [2,3,4,1,1,3,3,2,3,4,1,1,3,2,1,2]
fig, axs = plt.subplots()
hist = axs.hist2d(x,y)
plt.show()
plt.clf()
Si usamos random, para generar números aleatorios tenemos
import matplotlib.pyplot as plt
import random
random.seed(1234)
n = 100
x = [random.randint(0,x) for x in range(n)]
y = [random.randint(0,x) for x in range(n)]
fig, axs = plt.subplots()
hist = axs.hist2d(x,y)
plt.show()
plt.clf()
También te puede interesar:
Referencias¶
- 101 Histograma - Wikipedia, la enciclopedia libre
- 102 Matplotlib: Python plotting — Matplotlib 3.2.1 documentation
- 103 matplotlib.pyplot — Matplotlib 3.2.1 documentation
- 104 matplotlib.pyplot.hist — Matplotlib 3.2.1 documentation
- 201 Histograms — Matplotlib 3.1.2 documentation
- 202 Histogramas con Matplotlib python, líneas de separación - Stack Overflow en español
- 301 Representación gráfica de funciones y datos — documentación de Curso de Python para Astronomia - 20191118