Introducción
Contenido
Matplotlib es una de las bibliotecas de visualización de datos más utilizadas en Python. Desde visualizaciones simples hasta complejas, es la biblioteca de referencia para la mayoría.
En este tutorial, veremos cómo trazar un diagrama de histograma en Matplotlib. Los gráficos de histograma son una excelente manera de visualizar distribuciones de datos: en un histograma, cada barra agrupa números en rangos. Las barras más altas muestran que más datos caen en ese rango.
Un histograma muestra la forma y la extensión de los datos de muestra continuos.
Datos de importacion
Usaremos el Programas de Netflix conjunto de datos y visualizar las distribuciones desde allí.
Importemos Pandas y carguemos en el conjunto de datos:
import pandas as pd
df = pd.read_csv('netflix_titles.csv')
Trazar un gráfico de histograma en Matplotlib
Ahora, con el conjunto de datos cargado, importemos el módulo PyPlot de Matplotlib y visualicemos la distribución de release_year
s de los programas que están en vivo en Netflix:
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('netflix_titles.csv')
plt.hist(df['release_year'])
plt.show()
Aquí, tenemos un escenario de configuración mínima. Cargamos los datos en un DataFrame (df
), luego, usamos la instancia de PyPlot y llamamos al hist()
función para trazar un histograma para el release_year
característica. Por defecto, esto contará el número de ocurrencias de estos años, completará barras en rangos y trazará el histograma.
Ejecutar este código da como resultado:
Aquí, los contenedores de películas (rangos) se establecen en 10 años. Cada barra aquí incluye todos los programas / películas en lotes de 10 años. Por ejemplo, podemos ver que se lanzaron alrededor de ~ 750 programas entre 2000 y 2010. Al mismo tiempo, ~ 5000 se lanzaron entre 2010. y 2020.
Estos son rangos bastante grandes para la industria del cine, tiene más sentido visualizarlos para rangos menores a 10 años.
Cambiar el tamaño del contenedor de histograma en Matplotlib
Digamos, visualicemos un diagrama de histograma (distribución) en lotes de 1 año, ya que este es un marco de tiempo mucho más realista para los lanzamientos de películas y programas.
Importaremos numpy
, ya que nos ayudará a calcular el tamaño de los contenedores:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.read_csv('netflix_titles.csv')
data = df['release_year']
plt.hist(data, bins = np.arange(min(data), max(data) + 1, 1))
plt.show()
Esta vez, hemos extraído la columna DataFrame en un data
variable, solo para que sea un poco más fácil trabajar con él.
Hemos pasado el data
al hist()
función, y configure el bins
argumento. Acepta una lista, que puede configurar manualmente, si lo desea, especialmente si desea una distribución de ubicación no uniforme.
Dado que nos gustaría agrupar estas entradas en el mismo período de tiempo (1 año), crearemos una matriz Numpy, que comienza con el valor más bajo (min(data)
), termina en el valor más alto (max(data)
) y va en incrementos de 1
.
Esta vez, ejecutar este código da como resultado:
En lugar de una lista, puede dar una bins
valor. Este será el número total de bins
en la parcela. Utilizando 1
resultará en 1 barra para toda la parcela.
Digamos, queremos tener 20 contenedores, usaríamos:
Te puede interesar:Gráfico de barras de Seaborn – Tutorial y ejemplosimport matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.read_csv('netflix_titles.csv')
data = df['release_year']
plt.hist(data, bins = 20)
plt.show()
Esto da como resultado 20 contenedores iguales, con datos dentro de esos contenedores agrupados y visualizados en sus respectivas barras:
Esto da como resultado intervalos de 5 años, considerando que tenemos ~ 100 años de datos. Dividirlo en 20 contenedores significa que cada uno incluirá 5 años de datos.
Trazar histograma con densidad
A veces, en lugar del recuento de características, querríamos comprobar cuál es la densidad de cada barra / contenedor. Es decir, qué tan común es ver un rango dentro de un conjunto de datos dado. Dado que estamos trabajando con intervalos de 1 año, esto dará como resultado la probabilidad de que se estrene una película / programa en ese año.
Para hacer esto, simplemente podemos configurar el density
argumento para True
:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.read_csv('netflix_titles.csv')
data = df['release_year']
bins = np.arange(min(data), max(data) + 1, 1)
plt.hist(data, bins = bins, density = True)
plt.ylabel('Density')
plt.xlabel('Year')
plt.show()
Ahora, en lugar del recuento que hemos visto antes, se nos presentará la densidad de entradas:
Te puede interesar:Gráfico de línea de Matplotlib: tutorial y ejemplosPodemos ver que ~ 18% de las entradas se publicaron en 2018, seguido de ~ 14% en 2019.
Personalización de gráficos de histograma en Matplotlib
Además de estas configuraciones, hay una gran cantidad de varios argumentos que puede configurar para personalizar y cambiar la apariencia de su trama. Cambiemos algunas de las opciones comunes con las que a la gente le gusta jugar para cambiar las parcelas a sus gustos:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.read_csv('netflix_titles.csv')
data = df['release_year']
bins = np.arange(min(data), max(data) + 1, 1)
plt.hist(data, bins = bins, density = True, histtype="step", alpha = 0.5, align = 'right', orientation = 'horizontal', log = True)
plt.show()
Aquí, hemos establecido varios argumentos:
-
bins
– Número de contenedores en la parcela -
density
– Si PyPlot usa recuento o densidad para poblar la trama -
histtype
– El tipo de gráfico de histograma (el valor predeterminado esbar
, aunque otros valores comostep
ostepfilled
están disponibles) -
alpha
– El alfa / transparencia de las líneas -
align
– A qué lado de los contenedores están alineadas las barras, el valor predeterminado esmid
-
orientation
– Orientación horizontal / vertical, el valor predeterminado esvertical
-
log
– Si el gráfico debe colocarse en una escala logarítmica o no
Esto ahora resulta en:
Desde que pusimos el align
a right
, podemos ver que la barra está un poco desplazada, a la derecha vertical del contenedor 2020.
Conclusión
En este tutorial, hemos repasado varias formas de trazar un diagrama de histograma usando Matplotlib y Python.
Te puede interesar:Cómo trazar en línea y con Qt – Matplotlib con portátiles IPython / JupyterSi está interesado en la visualización de datos y no sabe por dónde empezar, asegúrese de consultar nuestro libro sobre Visualización de datos en Python.
Data Visualization in Python, un libro para desarrolladores de Python principiantes e intermedios, lo guiará a través de la manipulación simple de datos con Pandas, cubrirá bibliotecas de trazado centrales como Matplotlib y Seaborn, y le mostrará cómo aprovechar las bibliotecas declarativas y experimentales como Altair.
Visualización de datos en Python
¡Comprenda mejor sus datos con visualizaciones! Con 340 páginas, aprenderá los entresijos de la visualización de datos en Python con bibliotecas populares como Matplotlib, Seaborn, Bokeh y más.
.
Te puede interesar:Cómo cambiar el fondo de la trama en Matplotlib