Cartas estelares en Python

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()

Parcela de estrellas sin llenar

Gráfica de estrella llena

Comparación con gráfico de estrellas

Referencias:

Publicación traducida automáticamente

Artículo escrito por pawangfg 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 *