El gráfico de estrellas o gráfico de radar se utiliza para mostrar datos multivariados, en los que cada variable proporciona la medida de alguna propiedad común de cada observación. Cada estrella en la gráfica representa una sola observación. El gráfico de estrellas se utiliza para examinar los valores relativos de un solo punto de datos y ubicar puntos similares y diferentes.
El gráfico de estrellas consiste en la secuencia de radios equiangulares llamados radios, donde cada radio representa el valor de observación de una de las variables. La longitud de datos de un radio es proporcional a la magnitud de la variable para el punto relacionado con el punto de datos máximo en esa variable. Se dibuja una línea que conecta todos los puntos de datos.
El gráfico de estrellas se puede utilizar para responder a las siguientes preguntas:
- ¿Qué variable es dominante para una observación dada?
- ¿Qué observaciones son más similares, es decir, hay grupos de observaciones?
- ¿hay valores atípicos?
Aplicaciones
- El diagrama de estrellas generalmente se usa en visualizaciones deportivas y juegos como FIFA, Pro Evolution Soccer (PES) para visualizar las fortalezas y debilidades del jugador.
- El gráfico de estrellas también se puede utilizar para mejorar la calidad con el fin de visualizar las diferentes métricas de rendimiento.
Limitaciones:
- El gráfico de estrellas no es una buena manera de visualizar la variable ordinal o categórica que no representa que una categoría sea mejor o peor que la otra.
- El gráfico de estrellas a veces crea una conexión entre dos variables no relacionadas. Es por eso que no se puede confiar en una trama de estrellas para tomar decisiones de compensación.
- El orden de las variables también afecta la forma de la gráfica de estrellas. Por ejemplo, los valores 9, 2, 9, 1, 9, 1 producen un pico diferente a 9, 9, 9, 2, 1, 1.
Implementación:
- Para esta implementación, usaremos plotly y algún paquete general. Estos paquetes están preinstalados en colaboración pero se pueden instalar en el entorno local. Para instalar el plotly en el entorno local, siga estas instrucciones .
- Para esta implementación, usaremos el conjunto de datos de jugadores de FIFA-19, puede obtener el conjunto de datos de Kaggle .
Python3
# code import pandas as pd import numpy as np import plotly.express as px import plotly.graph_objects as go # read dataset from csv and perform preprocessing data = pd.read_csv('data.csv') data.head() # remove goalkeepers data for performing fair comparison goalkeeper_index = data[data['Position'] == 'GK' ].index data.drop(index_names,inplace=True) # remove columns which are not required for this visualisation purpose plt_vars = ['SprintSpeed','Agility','Stamina','Aggression', 'Positioning','Vision'] data.drop(data_cols, axis =1, inplace=True) # plot unfilled scatter plot px.line_polar(data, r = pd.Series(data.loc[1,plt_vars].values), theta=plt_vars,line_close=True, title = f'{data.loc[1,"Name"]} \n Overall : {data.loc[1,"Overall"]} \ Potential: {data.loc[1,"Potential"]}', width = 500) # plot filled star plot fig = go.Figure(data=go.Scatterpolar( r=pd.Series(data.loc[0,plt_vars].values), theta=plt_vars, fill='toself', name = f'{data.loc[0,"Name"]} (Overall : {data.loc[0,"Overall"]} \ Potential: {data.loc[0,"Potential"]} )'),) fig.update_layout( polar=dict( radialaxis=dict( visible=True, ), ), template = 'plotly_dark', showlegend=True, ) fig.show() # plot star plot for comparison fig = go.Figure() fig.add_trace(go.Scatterpolar( r=pd.Series(data.loc[1,plt_vars].values), theta=plt_vars, fill='toself', name=data.loc[1, 'Name'] )) fig.add_trace(go.Scatterpolar( r=pd.Series(data.loc[0,plt_vars].values), theta=plt_vars, fill='toself', name=data.loc[0, 'Name'] )) fig.update_layout( polar=dict( radialaxis=dict( visible=True )), template = 'plotly_dark', showlegend=True ) fig.show()