Plotly - Carta polar y carta de radar

En este capítulo, aprenderemos cómo se pueden hacer las cartas polares y las cartas de radar con la ayuda de Plotly.

En primer lugar, estudiemos sobre la carta polar.

Carta polar

El gráfico polar es una variación común de los gráficos circulares. Es útil cuando las relaciones entre los puntos de datos se pueden visualizar más fácilmente en términos de radios y ángulos.

En los gráficos polares, una serie se representa mediante una curva cerrada que conecta puntos en el sistema de coordenadas polares. Cada punto de datos está determinado por la distancia desde el polo (la coordenada radial) y el ángulo desde la dirección fija (la coordenada angular).

Un gráfico polar representa datos a lo largo de ejes radiales y angulares. Las coordenadas radiales y angulares se dan con elr y theta argumentos para go.Scatterpolar()función. Los datos theta pueden ser categóricos, pero los datos numéricos también son posibles y son los más utilizados.

El siguiente código produce un gráfico polar básico. Además de los argumentos r y theta, establecemos el modo enlines (se puede establecer bien en marcadores, en cuyo caso solo se mostrarán los puntos de datos).

import numpy as np
r1 = [0,6,12,18,24,30,36,42,48,54,60]
t1 = [1,0.995,0.978,0.951,0.914,0.866,0.809,0.743,0.669,0.588,0.5]
trace = go.Scatterpolar(
   r = [0.5,1,2,2.5,3,4],
   theta = [35,70,120,155,205,240],
   mode = 'lines',
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)

La salida se da a continuación:

En el siguiente ejemplo, los datos de un comma-separated values (CSV) filese utiliza para generar un gráfico polar. Primeras filas depolar.csv son los siguientes:

y,x1,x2,x3,x4,x5,
0,1,1,1,1,1,
6,0.995,0.997,0.996,0.998,0.997,
12,0.978,0.989,0.984,0.993,0.986,
18,0.951,0.976,0.963,0.985,0.969,
24,0.914,0.957,0.935,0.974,0.946,
30,0.866,0.933,0.9,0.96,0.916,
36,0.809,0.905,0.857,0.943,0.88,
42,0.743,0.872,0.807,0.923,0.838,
48,0.669,0.835,0.752,0.901,0.792,
54,0.588,0.794,0.691,0.876,0.74,
60,0.5,0.75,0.625,0.85,0.685,

Ingrese el siguiente script en la celda de entrada del cuaderno para generar un gráfico polar como se muestra a continuación:

import pandas as pd
df = pd.read_csv("polar.csv")
t1 = go.Scatterpolar(
   r = df['x1'], theta = df['y'], mode = 'lines', name = 't1'
)
t2 = go.Scatterpolar(
   r = df['x2'], theta = df['y'], mode = 'lines', name = 't2'
)
t3 = go.Scatterpolar(
   r = df['x3'], theta = df['y'], mode = 'lines', name = 't3'
)
data = [t1,t2,t3]
fig = go.Figure(data = data)
iplot(fig)

A continuación se muestra la salida del código mencionado anteriormente:

Gráfico de radar

Un gráfico de radar (también conocido como spider plot o star plot) muestra datos multivariados en forma de un gráfico bidimensional de variables cuantitativas representadas en ejes que se originan en el centro. La posición relativa y el ángulo de los ejes no suelen ser informativos.

Para un gráfico de radar, utilice un gráfico polar con variables angulares categóricas en go.Scatterpolar() función en el caso general.

El siguiente código representa un gráfico de radar básico con Scatterpolar() function -

radar = go.Scatterpolar(
   r = [1, 5, 2, 2, 3],
   theta = [
      'processing cost',
      'mechanical properties',
      'chemical stability', 
      'thermal stability',
      'device integration'
   ],
   fill = 'toself'
)
data = [radar]
fig = go.Figure(data = data)
iplot(fig)

La salida mencionada a continuación es el resultado del código dado anteriormente: