Plotly

Los ejemplos son tomados de la página oficial de plotly, principalmente se obtienen algunos ejemplos gráficos con la estructura básica de plotly.

Librerías

Gantt Charts

Gantt Charts

Alter Layout

Add Annotations

Sunburst Charts

Basic Sunburst Chart

Branchvalues

Con branchvalues total, representa el valor del padre que es el ancho de su cuña. En el siguiente ejemplo, Enoch es 4 y Awan es 6, por lo que el ancho de Enoch es 4/6 de Awans. Con branchvalues rest, el ancho del padre está determinado por su propio valor más los de sus hijos. Entonces, el ancho de Enoch es 4/10 de Awan (4 / (6 + 4)).

Esto significa que la suma de los valores de los hijos no puede exceder el valor de su padre cuando los valores de rama son totals. Cuando los valores de rama son “relativos” (el valor predeterminado), los niños no ocuparán todo el espacio debajo de su padre (a menos que el padre sea la raíz y tenga un valor de 0).

Sunburst with Repeated Labels

Subplots

Tables

Basic Tables

Styled Table

Table From a Dataframe

Changing Size of Rows and Columns

Sankey Diagram

Basic Sankey Diagram

Style Sankey Diagram

Define Node Position

El siguiente ejemplo establece node.x y node.y para colocar nodos en las ubicaciones especificadas, excepto en la disposición de ajuste (comportamiento predeterminado cuando node.x y node.y no están definidos) para evitar la superposición de los nodos, por lo tanto, el ajuste de elementos se establecerá para definir el relleno entre nodos a través de nodepad. Las otras disposiciones posibles son: 1) perpendicular 2) freeform 3) fixed

Treemap Charts

Los treemap que son creados en plotly son interactivos de forma predeterminada. Se hace clic en los sectores individuales del gráfico de mapa de árbol para acercar o alejar ese sector y mostrar una barra de ruta jerárquica en la parte superior del gráfico. Se puede utilizar esta barra de ruta para acercar o alejar los sectores del gráfico en lugar de hacer clic en los sectores directamente.

Basic Treemap

Customize Treemap Attributes

Puede personalizar varios atributos de los mapas de árbol que crea con plotly, que incluyen:

values: una lista de los valores asignados a cada sector del gráfico.
textinfo: determina la información textual que aparecerá en cada sector del gráfico. Los valores válidos son texto, value, current path, percent root, percent entry, percent parent o cualquier combinación de los anteriores.
pathbar: determina si la barra de ruta es visible cuando los usuarios hacen zoom en los sectores del gráfico.
branchvalues: el método que se ha utilizado para calcular los valores de los sectores del gráfico que tienen desendants. Los valores válidos para este atributo son total y remainder; el valor predeterminado es el remainder.
Cuando se configura como remainder, los elementos del atributo de valores que corresponden a la raíz y los sectores de ramas se toman como la parte extra, no como parte de la suma de los valores en sus hojas.

Set Color of Treemap Sectors

Existen tres atributos diferentes que puede usar para cambiar el color de los sectores de los mapas de árbol:

  1. marker.colors
  2. marker.colorscale
  3. colorway

Los siguientes ejemplos muestran cómo utilizar cada atributo. Para usar marker.colors, pase una lista de colores CSS válidos o códigos de colores hexadecimales.

El siguiente ejemplo utiliza el atributo marker.colorscale. En lugar de utilizar una lista de colores, simplemente proporcione una escala de colores.

Las escalas de colores integradas son: Greys, YlGnBu, Greens, YlOrRd, Bluered, RdBu, Reds, Blue, Picnic, Rainbow, Portland, Jet, Hot, Blackbody, Earth, Electric, Viridis y Cividis.

El siguiente ejemplo utiliza el atributo treemapcolorway, que debe establecerse en el diseño del gráfico.

Nested Layers in Treemap

El siguiente ejemplo demuestra cómo se pueden usar los gráficos de mapas de árbol para revelar información sobre la estructura de los datos jerárquicos que incluyen información sobre capas y agrupaciones. El atributo maxdepth se puede utilizar para controlar cuántos niveles de datos se representan; el valor predeterminado de -1 representa todos los niveles de la jerarquía.

Controlling Text Font Size with uniformtext

De forma predeterminada, el tamaño de fuente de las etiquetas de texto en su gráfico de mapa de árbol variará para adaptarse al espacio disponible dentro de un sector. Sin embargo, si desea que todas las etiquetas de texto en el gráfico de mapa de árbol tengan el mismo tamaño de fuente, puede usar el parámetro uniformtext. El atributo minsize establece el tamaño de la fuente y el atributo mode establece lo que sucede con las etiquetas que no pueden caber dentro de un sector con el tamaño de fuente especificado: hide o show.

Funnel Charts

Los gráficos de embudo se utilizan a menudo para representar datos en diferentes etapas de un proceso empresarial. Es un mecanismo importante en Business Intelligence para identificar posibles áreas problemáticas de un proceso. Por ejemplo, se utiliza para observar los ingresos o pérdidas en un proceso de ventas para cada etapa y muestra valores que disminuyen progresivamente.

Basic Funnel Plot

Setting Marker Size and Color

Stacked Funnel Plot

Basic Area Funnel Plot

Set Marker Size and Color in Area Funnel Plots

Multiple Area Funnels

Gauge Chart

Un gráfico de calibre radial tiene un arco circular, que muestra un valor único para estimar el progreso hacia una meta. La barra muestra el valor objetivo y el sombreado representa el progreso hacia ese objetivo. Gráficos de calibre, también conocidos como gráficos de velocímetro. Este tipo de gráfico se usa generalmente para ilustrar indicadores comerciales clave.

Basic Gauge

Add Steps, Threshold, and Delta

Los siguientes ejemplos incluyen el atributo steps que se muestra como sombreado dentro del arco radial, delta que es la diferencia del valor y el objetivo (referencia - valor) y threshold para determinar los límites que le avisan visualmente si el valor cruza un umbral definido.

Custom Gauge Chart

Waterfall Charts

Basic Waterfall Chart

Setting Marker Size and Color

Este ejemplo usa atributos decrecientes, crecientes y totales para personalizar las barras.

Bullet Charts

El Bullet Chart de Stephen Few se inventó para reemplazar los medidores y medidores del tablero, combinando ambos tipos de gráficos en gráficos de barras simples con barras cualitativas (steps), barra cuantitativa (bars) y línea de rendimiento (threshold); todo en un diseño simple. Los pasos generalmente se dividen en varios valores, que se definen con una matriz. La barra representa el valor real que alcanzó una variable en particular, y el umbral generalmente indica un punto de meta relativo al valor alcanzado por la barra.

Add Steps, and Threshold

A continuación se muestra el mismo ejemplo que utiliza el atributo steps, que se muestra como sombreado, y threshold para determinar los límites que le alertan visualmente si el valor cruza un umbral definido.

Custom Bullet Chart

Multi Bullet

Time Series

Time Series

Dates

Hiding Weekends and Holidays

El atributo rangebreaks disponible en los ejes \(x\) e \(y\) de tipo fecha se puede utilizar para ocultar ciertos períodos de tiempo. En el siguiente ejemplo, se muestran dos gráficos: uno en modo predeterminado para mostrar brechas en los datos y otro en el que ocultamos fines de semana y días festivos para mostrar un historial comercial ininterrumpido. Los espacios más pequeños entre las líneas de la cuadrícula para el 21 de diciembre y el 4 de enero, donde se eliminaron las vacaciones.

POSIXlt date time class with timezone

POSIXct date time class without timezone

Candlestick Charts

Basic Candlestick

## [1] "AAPL"

Candlestick without Rangeslider

Customise the figure with Shapes and Annotations

Custom Candlestick Colors

Add a Trace to Candlestick Chart

Candlestick Using Segments

Add Bollinger Bands and Buttons

## [1] "AAPL"
df <- data.frame(Date=index(AAPL),coredata(AAPL))

# create Bollinger Bands
bbands <- BBands(AAPL[,c("AAPL.High","AAPL.Low","AAPL.Close")])

# join and subset data
df <- subset(cbind(df, data.frame(bbands[,1:3])), Date >= "2015-02-14")

# colors column for increasing and decreasing
for (i in 1:length(df[,1])) {
  if (df$AAPL.Close[i] >= df$AAPL.Open[i]) {
      df$direction[i] = 'Increasing'
  } else {
      df$direction[i] = 'Decreasing'
  }
}

i <- list(line = list(color = '#17BECF'))
d <- list(line = list(color = '#7F7F7F'))

# plot candlestick chart

p1 <- df %>% 
      plot_ly(x = ~Date, 
               type="candlestick",
                open = ~AAPL.Open, 
                  close = ~AAPL.Close,
                    high = ~AAPL.High, 
                      low = ~AAPL.Low, 
                        name = "AAPL",
                          increasing = list(line = list(color = '#17BECF')), 
                            decreasing = list(line = list(color = '#7F7F7F'))) %>% 
          add_lines(x = ~Date, 
                      y = ~up , 
                        name = "B Bands",
                          line = list(color = '#ccc', width = 0.5),
                            legendgroup = "Bollinger Bands",
                              hoverinfo = "none", 
                                inherit = F) %>% 
          add_lines(x = ~Date, 
                      y = ~dn, 
                        name = "B Bands",
                          line = list(color = '#ccc', width = 0.5),
                            legendgroup = "Bollinger Bands", 
                              inherit = F,
                                showlegend = FALSE, 
                                  hoverinfo = "none") %>% 
          add_lines(x = ~Date, 
                      y = ~mavg, 
                        name = "Mv Avg",
                          line = list(color = '#E377C2', width = 0.5),
                            hoverinfo = "none", 
                              inherit = F)  %>% 
              layout(yaxis = list(title = "Price"))

# plot volume bar chart
p2 <- df %>% 
        plot_ly(x=~Date, 
                  y=~AAPL.Volume, 
                    type='bar', 
                      name = "AAPL Volume",
                        color = ~direction, 
                          colors = c('#17BECF','#7F7F7F')) %>% 
            layout(yaxis = list(title = "Volume"))

# subplot with shared x axis
p <- subplot(p1, p2, 
              heights = c(0.7,0.2), 
                nrows=2,
                  shareX = TRUE, 
                    titleY = TRUE) %>% 
        layout(title = paste("Apple: 2015-02-14 -",Sys.Date()),
                xaxis = list(rangeselector = list(visible = TRUE,  # create rangeselector buttons
                                                  x = 0.5, 
                                                  y = -0.055,
                                                  xanchor = 'center',
                                                  yref = 'paper',
                                                  font = list(size = 9),
                                                  buttons = list(list(count=1, 
                                                                        label='RESET', 
                                                                          step='all'),
                                                                 list(count=1, 
                                                                        label='1 YR', 
                                                                          step='year',
                                                                            stepmode='backward'),
                                                                 list(count=3,
                                                                        label='3 MO',
                                                                          step='month',
                                                                            stepmode='backward'),
                                                                 list(count=1,
                                                                       label='1 MO',
                                                                         step='month',
                                                                           stepmode='backward')))),
                      legend = list(orientation = 'h', 
                                      x = 0.5, 
                                        y = 1, 
                                          xanchor = 'center', 
                                            yref = 'paper',
                                              font = list(size = 10),
                                                bgcolor = 'transparent'))
p

OHLC Charts

Basic OHLC Chart

## [1] "AAPL"

OHLC Chart without Rangeslider

Customise the Figure with Shapes and Annotations

Custom OHLC Chart Colors

Referencias

Plotly R Graphing Library | R | Plotly. (n.d.). Retrieved August 5, 2020, from https://plotly.com/r/