¿Cómo hacer un histograma con línea mediana usando Altair en Python?

En este artículo, aprenderemos cómo hacer el histograma con la línea mediana usando Altair en python. Este artículo también es un gran ejemplo de la gramática de gráficos de Altair. 

Altair es una de las últimas bibliotecas de visualización de datos interactivos en python. Altair se basa en vega y vegalite: una gramática de gráficos interactivos. Aquí usaremos la palabra clave de importación para usar la biblioteca de Altair para usarla. 

Ilustrar un histograma con línea mediana

Primero, cargaremos los paquetes de python que se usan para hacer un histograma con una línea de media y mediana usando Altair. 

Python3

# import required modules
import altair as alt
import numpy as np
import pandas as pd

Ahora generaremos los datos para hacer un histograma con la línea mediana. Aquí, usaremos Numpy para generar números aleatorios a partir de una distribución normal y crear marcos de datos panda. 

Python3

# generating data
np.random.seed(42)
df = pd.DataFrame({'height': np.random.normal(150, 10, 1000)})

Básicamente, aquí tendemos a construir el gráfico de barras con la línea mediana que puede producir dos capas de objetos de imagen de estrella doble y combinarlos. Usando la función de gráfico de Altair, creamos el gráfico base de los marcos de datos de datos. 

Python3

# initialize chart
base=alt.Chart(df)

Ahora usamos la función mark_bar() de Altair y creamos el objeto base para hacer un histograma. Además, aquí mencionamos qué variable nos interesa para hacer un histograma. 

Python3

# generate histogram
hist = base.mark_bar().encode(
    x=alt.X('height:Q', bin=alt.BinParams(), axis=None), y='count()')

Usando la función mark_rule() en la biblioteca de Altair, usamos el objeto base con los datos nuevamente para crear una línea mediana.

Python3

# generate median line
median_line = base.mark_rule().encode(
    x=alt.X('mean(height):Q', title='Height'), size=alt.value(5))

Ahora, para formar el histograma fundamental con la línea mediana, tenemos la tendencia de simplemente combinar el objeto de gráfico de barras y el objeto de línea mediana de la siguiente manera:

Python3

# depict illustration
hist+median_line

Producción:

Por lo tanto, aquí obtenemos el histograma con la línea mediana usando Altair en python. 

Comprendamos ahora cómo obtener el histograma personalizado.

Personalización de histograma con línea mediana usando Altair

En el histograma básico con la línea mediana, la biblioteca de Altair utiliza los parámetros predeterminados para trazar el histograma. Al igual que Altair ha elegido un color azul para el histograma y el número de contenedores para nosotros. Del mismo modo, Altair eligió el color negro para la línea media. Pero podemos personalizar fácilmente el histograma con la línea mediana usando Altair. 

Primero, aumentaremos el número de contenedores en el histograma y luego cambiaremos el color de la línea mediana a rojo. 

Usaremos el argumento maxbins=100 dentro del parámetro del eje de coordenadas, para formar el histograma con 100 contenedores. Luego podemos cambiar el color de la línea mediana a rojo usando color=red dentro de la función mark_rule() . Y, por último, combinemos tanto el histograma como el objeto de línea mediana. Y luego mejoraremos la versión del histograma con una línea mediana en Altair.

Python3

# import required modules
import altair as alt
import numpy as np
import pandas as pd
  
# generating data
np.random.seed(42)
df = pd.DataFrame({'height': np.random.normal(150, 10, 1000)})
  
# initialize chart
base = alt.Chart(df)
  
# generate histogram
hist = base.mark_bar().encode(
    x=alt.X('height:Q', bin=alt.BinParams(maxbins=100), axis=None), y='count()')
  
# generate median line
red_median_line = base.mark_rule(color='red').encode(
    x=alt.X('mean(height):Q', title='Height'), size=alt.value(5))
  
# depict illustration
hist+red_median_line

Producción:

Por lo tanto, la figura anterior muestra el histograma con 100 contenedores y una línea mediana roja usando Altair en python.

Publicación traducida automáticamente

Artículo escrito por shivalibhadaniya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *