Plotly - Diagramas de puntos y tabla

Aquí, aprenderemos sobre los gráficos de puntos y la función de tabla en Plotly. En primer lugar, comencemos con diagramas de puntos.

Gráficos de puntos

Un diagrama de puntos muestra puntos en una escala muy simple. Solo es adecuado para una pequeña cantidad de datos, ya que una gran cantidad de puntos hará que se vea muy desordenado. Los gráficos de puntos también se conocen comoCleveland dot plots. Muestran cambios entre dos (o más) puntos en el tiempo o entre dos (o más) condiciones.

Los gráficos de puntos son similares a los gráficos de barras horizontales. Sin embargo, pueden estar menos abarrotados y permitir una comparación más fácil entre las condiciones. La figura traza un trazado de dispersión con el atributo de modo establecido en marcadores.

El siguiente ejemplo muestra la comparación de la tasa de alfabetización entre hombres y mujeres según se registra en cada censo después de la independencia de la India. Dos trazos en el gráfico representan el porcentaje de alfabetización de hombres y mujeres en cada censo desde 1951 hasta 2011.

from plotly.offline import iplot, init_notebook_mode
init_notebook_mode(connected = True)
census = [1951,1961,1971,1981,1991,2001, 2011]
x1 = [8.86, 15.35, 21.97, 29.76, 39.29, 53.67, 64.63]
x2 = [27.15, 40.40, 45.96, 56.38,64.13, 75.26, 80.88]
traceA = go.Scatter(
   x = x1,
   y = census,
   marker = dict(color = "crimson", size = 12),
   mode = "markers",
   name = "Women"
)
traceB = go.Scatter(
x = x2,
y = census,
marker = dict(color = "gold", size = 12),
mode = "markers",
name = "Men")
data = [traceA, traceB]
layout = go.Layout(
   title = "Trend in Literacy rate in Post independent India",
   xaxis_title = "percentage",
   yaxis_title = "census"
)
fig = go.Figure(data = data, layout = layout)
iplot(fig)

La salida sería la que se muestra a continuación:

Tabla en Plotly

El objeto Table de Plotly es devuelto por go.Table()función. El seguimiento de tabla es un objeto gráfico útil para la visualización de datos detallados en una cuadrícula de filas y columnas. La tabla utiliza un orden de columna mayor, es decir, la cuadrícula se representa como un vector de vectores de columna.

Dos parámetros importantes de go.Table() función son header que es la primera fila de la tabla y cellsque forman el resto de filas. Ambos parámetros son objetos de diccionario. El atributo de valores de los encabezados es una lista de encabezados de columna y una lista de listas, cada una correspondiente a una fila.

La personalización de estilo adicional se realiza mediante linecolor, fill_color, fuente y otros atributos.

El siguiente código muestra la tabla de puntos de la etapa de todos contra todos de la Copa Mundial de Cricket 2019 recién concluida.

trace = go.Table(
   header = dict(
      values = ['Teams','Mat','Won','Lost','Tied','NR','Pts','NRR'],
      line_color = 'gray',
      fill_color = 'lightskyblue',
      align = 'left'
   ),
   cells = dict(
      values = 
      [
         [
            'India',
            'Australia',
            'England',
            'New Zealand',
            'Pakistan',
            'Sri Lanka',
            'South Africa',
            'Bangladesh',
            'West Indies',
            'Afghanistan'
         ],
         [9,9,9,9,9,9,9,9,9,9],
         [7,7,6,5,5,3,3,3,2,0],
         [1,2,3,3,3,4,5,5,6,9],
         [0,0,0,0,0,0,0,0,0,0],
         [1,0,0,1,1,2,1,1,1,0],
         [15,14,12,11,11,8,7,7,5,0],
         [0.809,0.868,1.152,0.175,-0.43,-0.919,-0.03,-0.41,-0.225,-1.322]
      ],
      line_color='gray',
      fill_color='lightcyan',
      align='left'
   )
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)

El resultado es como se menciona a continuación:

Los datos de la tabla también se pueden completar desde el marco de datos de Pandas. Creemos un archivo separado por comas (points-table.csv) como a continuación -

Equipos Estera Won Perdió Atado NR Ptos NRR
India 9 7 1 0 1 15 0,809
Australia 9 7 2 0 0 14 0,868
Inglaterra 9 6 3 0 0 14 1,152
Nueva Zelanda 9 5 3 0 1 11 0,175
Pakistán 9 5 3 0 1 11 -0,43
Sri Lanka 9 3 4 0 2 8 -0,919
Sudáfrica 9 3 5 0 1 7 -0,03
Bangladesh 9 3 5 0 1 7 -0,41
Teams,Matches,Won,Lost,Tie,NR,Points,NRR
India,9,7,1,0,1,15,0.809
Australia,9,7,2,0,0,14,0.868
England,9,6,3,0,0,12,1.152
New Zealand,9,5,3,0,1,11,0.175
Pakistan,9,5,3,0,1,11,-0.43
Sri Lanka,9,3,4,0,2,8,-0.919
South Africa,9,3,5,0,1,7,-0.03
Bangladesh,9,3,5,0,1,7,-0.41
West Indies,9,2,6,0,1,5,-0.225
Afghanistan,9,0,9,0,0,0,-1.322

Ahora construimos un objeto de marco de datos a partir de este archivo csv y lo usamos para construir el seguimiento de la tabla como se muestra a continuación:

import pandas as pd
df = pd.read_csv('point-table.csv')
trace = go.Table(
   header = dict(values = list(df.columns)),
   cells = dict(
      values = [
         df.Teams, 
         df.Matches, 
         df.Won, 
         df.Lost, 
         df.Tie, 
         df.NR, 
         df.Points, 
         df.NRR
      ]
   )
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)