Prerrequisito: Altair
Un histograma representa los datos proporcionados durante una especie de grupos. Es un método preciso para la representación gráfica de la distribución de datos numéricos. Es una especie de gráfico de barras en el que el eje X representa los rangos de bin, mientras que el eje Y proporciona información sobre la frecuencia.
Usando Altair, podemos hacer histogramas superpuestos o histogramas de capas a partir de datos que están en forma amplia o en forma ordenada larga.
Procedimiento
Esto será común a ambas formas:
- Importar bibliotecas
- Importar o crear datos.
- Haga que los datos sean largos/anchos según el método.
- Trazar los histogramas.
Método 1: forma ordenada
- Para hacer un histograma con Altair, estamos usando la función mark_area(). Aquí especificamos el nivel de transparencia con el argumento de opacidad y, por lo tanto, el argumento clave que crea el histograma es interpolar = ‘paso’. Sin eso, el histograma aparecería como un gráfico de áreas de Altair.
- Luego especificamos las variables y por lo tanto el número de bins. Para diferenciar entre diferentes gráficos, se emplea alt.Color() con la variable específica como múltiples histogramas.
Ejemplo :
Python3
# importing libraries import pandas as pd import altair as alt import numpy as np np.random.seed(42) # creating data df = pd.DataFrame({'Col A': np.random.normal(-1, 1, 1000), 'Col B': np.random.normal(0, 1, 1000)}) # Overlapping Histograms alt.Chart(pd.melt(df, id_vars=df.index.name, value_vars=df.columns, var_name='Columns', value_name='Values') ).mark_area(opacity=0.5, interpolate='step' ).encode( alt.X('Values', bin=alt.Bin(maxbins=10)), alt.Y('count()', stack=None), alt.Color('Columns') ).add_selection(alt.selection_interval(encodings=['x']))
Producción:
Método 2: formato ancho
- A menudo, es posible que comience con datos que están en formato amplio. Altair tiene la función transform_fold() que convertirá los datos en formato ancho a formato largo y ordenado. Esto nos permite no usar la función melt() de Pandas y nos permite transferir la información dentro de Altair.
- Especificamos los nombres de las variables que se requieren para remodelar y los nombres para la marca que abarcan nuevas variables dentro de los datos ordenados.
Ejemplo :
Python3
# importing libraries import pandas as pd import altair as alt import numpy as np np.random.seed(42) # creating data df = pd.DataFrame({'Col 1': np.random.normal(-1, 1, 1000), 'Col 2': np.random.normal(0, 1, 1000)}) # Overlapping Histograms alt.Chart(df).transform_fold( ['Col 1', 'Col 2'], as_=['Columns', 'Values'] ).mark_area( opacity=0.5, interpolate='step' ).encode( alt.X('Values:Q', bin=alt.Bin(maxbins=100)), alt.Y('count()', stack=None), alt.Color('Columns:N') )
Producción :
Publicación traducida automáticamente
Artículo escrito por deepanshu_rustagi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA