Prerrequisitos: Altair
Altair es una biblioteca de visualización de datos estadísticos en Python que se basa en las gramáticas de visualización Vega y Vega-Lite. Se utiliza un Stripplot para el análisis de datos gráficos. Es una gráfica simple de valores de respuesta en un orden ordenado a lo largo de un solo eje. El diagrama de franja consta de 2 ejes distintos (X, Y). Los gráficos de franjas proporcionan una alternativa para el histograma y otros gráficos basados en la densidad y, a menudo, se usan con conjuntos de datos pequeños.
Se utiliza un diagrama de franja simple para representar los datos como puntos, lo que puede no ser muy útil para nosotros. Para hacer que el diagrama de franjas simple sea más cultivado, agregamos fluctuaciones aleatorias. Jitter en palabras simples es agregar una pequeña cantidad de variabilidad (horizontal o vertical) a los datos para garantizar que todos los puntos de datos sean visibles.
Acercarse:
- Importar bibliotecas
- Importar o crear datos
- Cree un Stripplot simple usando Altair
- Agregar variable de fluctuación al eje
- Modifique los valores de diferentes atributos para una mejor visualización (opcional).
- Gráfico de visualización
Función utilizada
calcule_transform() permite al usuario definir nuevos campos en el conjunto de datos que se calculan a partir de otros campos mediante una expresión.
Sintaxis:
calculate_transform(<some_expression>)
Varias implementaciones utilizando el enfoque anterior se dan a continuación.
Ejemplo 1:
En este programa, utilizaremos el conjunto de datos de propinas para estudiar la cantidad de dinero pagada como propina durante la hora del almuerzo y la cena.
Python3
#import libraries import seaborn import altair as alt # Getting data tip = seaborn.load_dataset('tips') # plotting the stripplot stripplot = alt.Chart(tip).mark_circle(size=14).encode( # X-axis jitter Vertical x=alt.X( 'jitter:Q', title=None, axis=alt.Axis(ticks=True, grid=False, labels=False), scale=alt.Scale(), ), y=alt.Y('tip:Q', scale=alt.Scale()), color=alt.Color('time:N', legend=None), column=alt.Column( 'time:N', ), ).transform_calculate( # Generate Gaussian jitter with a Box-Muller transform jitter='sqrt(-2*log(random()))*cos(2*PI*random())') stripplot
Producción:
Ejemplo 2:
Este programa se ocupa del estudio de la temperatura máxima durante diferentes condiciones climáticas en la región de Seattle utilizando stripplot.
Python3
#import libraries import altair as alt from vega_datasets import data # Getting data weather = data.seattle_weather() # plotting the stripplot stripplot = alt.Chart(weather).mark_circle(size=14).encode( x=alt.X( 'jitter:Q', title=None, axis=alt.Axis(ticks=True, grid=False, labels=False), scale=alt.Scale(), ), y=alt.Y('temp_max:Q', scale=alt.Scale( domain=(-1, 40))), color=alt.Color('weather:N', legend=None), column=alt.Column( 'weather:N', header=alt.Header( labelFontSize=16, labelAngle=0, titleOrient='top', labelOrient='bottom', labelAlign='center', labelPadding=25, ), ), ).transform_calculate( # Generate Gaussian jitter with a Box-Muller transform jitter='sqrt(-2*log(random()))*cos(2*PI*random())' ).configure_facet( spacing=0 ).configure_view( stroke=None ).configure_axis( labelFontSize=16, titleFontSize=16 ).properties(height=400, width=100) stripplot
Producción:
Ejemplo 3.
Este trazado representa la edad y el sexo de una determinada pieza de datos. (Gráfico horizontal)
Python3
#import libraries import seaborn import altair as alt import pandas as pd # Creating our own data data = [['Tom', 10, 'Male'], ['Nick', 25, 'Male'], ['Juli', 14, 'Female'], ['Sarah', 30, 'Male'], ['Pulkit', 20, 'Male'], ['Ritika', 20, 'Female'], ['Sayantan', 60, 'Male'], ['Pam', 39, 'Female'], ['Peter', 42, 'Male'], ['Jenefer', 24, 'Female'], ['Tony', 29, 'Female'], ['Myler', 22, 'Female']] df = pd.DataFrame(data, columns=['Name', 'Age', 'Gender']) # plotting the stripplot Horizontal horizontal_stripplot = alt.Chart(df, width=600, height=100).mark_circle(size=40).encode( y=alt.Y( 'jitter:Q', title=None, axis=alt.Axis(ticks=True, grid=False, labels=False), scale=alt.Scale(), ), x=alt.X('Age:Q', scale=alt.Scale()), color=alt.Color('Gender:N', legend=None), row=alt.Row( 'Gender:N', header=alt.Header( labelAngle=0, labelFontSize=16, titleOrient='top', labelOrient='left', labelAlign='left', ), ), ).transform_calculate( # Generate Gaussian jitter with a Box-Muller transform jitter='sqrt(-2*log(random()))*cos(2*PI*random())' ).configure_facet( spacing=0 ).configure_view( stroke=None ).configure_axis( labelFontSize=16, titleFontSize=16 ) horizontal_stripplot
Producción:
Publicación traducida automáticamente
Artículo escrito por pulkit12dhingra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA