Plotly – diagramas de puntos y tabla

Aquí aprenderemos sobre gráficos de dispersión y funciones de tabla en Plotly. Primero, comencemos con diagramas de puntos.

Gráficos de puntos

Un diagrama de dispersión muestra puntos en una escala muy simple. Solo es adecuado para pequeñas cantidades de datos, ya que una gran cantidad de puntos lo volverá muy desordenado. Las gráficas de puntos también se conocen como Gráficos de puntos de Cleveland… Muestran cambios entre dos (o más) puntos en el tiempo o entre dos (o más) condiciones.

Los diagramas de puntos son similares a un gráfico de barras horizontales. Sin embargo, pueden estar menos abarrotados y facilitar la comparación de condiciones. La figura muestra un diagrama de dispersión con el atributo de modo establecido en marcadores.

El siguiente ejemplo compara las tasas de alfabetización de hombres y mujeres para cada censo después de la independencia de la India. Las dos líneas del gráfico representan el porcentaje de hombres y mujeres alfabetizados para cada censo de 1951 a 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)

El resultado será el que se muestra a continuación:

Gráficos de puntos de Cleveland

Tabla en Plotly

Se devuelve el objeto de la tabla de gráfico go.Table () función. Una traza de tabla es un objeto gráfico útil para ver datos detallados en una cuadrícula de filas y columnas. La tabla usa el orden de las columnas, es decir la malla se representa como un vector de vectores columna.

Dos parámetros importantes go.Table () función título esta es la primera fila de la tabla y células que forman el resto de las filas. Ambos parámetros son objetos de diccionario. El atributo de valores de encabezado es una lista de encabezados de columna y una lista de listas, cada una correspondiente a una fila.

Se realiza una mayor personalización del estilo utilizando el color de línea, el color de relleno, la fuente y otros atributos.

El siguiente código muestra la tabla de puntuación 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)

Resultado como se indica a continuación:

Los datos de la tabla también se pueden completar desde un marco de datos de Pandas. Creemos un archivo separado por comas (tabla-puntos.csv) Como se muestra abajo –

Comandos Estera Ganado Perdió Conectado NR Vasos NRR
India 9 7 uno 0 uno 15 0,809
Australia 9 7 2 0 0 14 0,868
Inglaterra 9 6 3 0 0 14 1,152
Nueva Zelanda 9 cinco 3 0 uno once 0,175
Pakistán 9 cinco 3 0 uno once -0,43
Sri Lanka 9 3 cuatro 0 2 8 -0,919
Sudáfrica 9 3 cinco 0 uno 7 -0,03
Bangladesh 9 3 cinco 0 uno 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 creamos un objeto de marco de datos a partir de este archivo CSV y lo usamos para crear un 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)

🚫