Plotly: subparcelas y parcelas insertadas

Aquí, entenderemos el concepto de subparcelas y parcelas insertadas en Plotly.

Haciendo subtramas

A veces es útil comparar diferentes vistas de los datos en paralelo. Esto apoya el concepto de subtramas. Ofrecemake_subplots() funcionar en plotly.tools module. La función devuelve un objeto Figura.

La siguiente declaración crea dos subtramas en una fila.

fig = tools.make_subplots(rows = 1, cols = 2)

Ahora podemos agregar dos trazas diferentes (las trazas exp y log en el ejemplo anterior) a la figura.

fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 1, 2)

El diseño de la figura se configura aún más especificando title, width, height, etc. usando update() método.

fig['layout'].update(height = 600, width = 800s, title = 'subplots')

Aquí está el guión completo:

from plotly import tools
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import iplot, init_notebook_mode
init_notebook_mode(connected = True)
import numpy as np
x = np.arange(1,11)
y1 = np.exp(x)
y2 = np.log(x)
trace1 = go.Scatter(
   x = x,
   y = y1,
   name = 'exp'
)
trace2 = go.Scatter(
   x = x,
   y = y2,
   name = 'log'
)
fig = tools.make_subplots(rows = 1, cols = 2)
fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 1, 2)
fig['layout'].update(height = 600, width = 800, title = 'subplot')
iplot(fig)

Este es el formato de la cuadrícula de su gráfico: [(1,1) x1, y1] [(1,2) x2, y2]

Parcelas insertadas

Para mostrar una subparcela como insertada, necesitamos configurar su objeto de seguimiento. Primero elxaxis y propiedades de eje de la traza insertada para ‘x2’ y ‘y2’respectivamente. La siguiente declaración pone‘log’ trazar en recuadro.

trace2 = go.Scatter(
   x = x,
   y = y2,
   xaxis = 'x2',
   yaxis = 'y2',
   name = 'log'
)

En segundo lugar, configure el objeto Layout donde la ubicación de los ejes xey del recuadro está definida por domain propiedad que especifica su posición con respecto al eje mayor.

xaxis2=dict(
   domain = [0.1, 0.5],
   anchor = 'y2'
),
yaxis2 = dict(
   domain = [0.5, 0.9],
   anchor = 'x2'
)

El script completo para mostrar el seguimiento del registro en el recuadro y el seguimiento exp en el eje principal se muestra a continuación:

trace1 = go.Scatter(
   x = x,
   y = y1,
   name = 'exp'
)
trace2 = go.Scatter(
   x = x,
   y = y2,
   xaxis = 'x2',
   yaxis = 'y2',
   name = 'log'
)
data = [trace1, trace2]
layout = go.Layout(
   yaxis = dict(showline = True),
   xaxis2 = dict(
      domain = [0.1, 0.5],
      anchor = 'y2'
   ),
   yaxis2 = dict(
      showline = True,
      domain = [0.5, 0.9],
      anchor = 'x2'
   )
)
fig = go.Figure(data=data, layout=layout)
iplot(fig)

La salida se menciona a continuación: