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