Introducción a los gráficos alluvial
Este tipo de gráfico resulta ideal para trabajar los problemas de multiple fuentes u orÃgenes, canales y consumidores en las cadenas de abastecimiento.
Repasaremos su construcción y luego avanzaremos con un ejemplo.
# Cargamos una biblioteca auxiliar
library(networkD3)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Creamos un dataset de clase data.frame que lista la intensidad de flujos entre grupos. Crearemos los flujos entre cada origen y destino
links <- data.frame(
source=c("grupo_A","grupo_A", "grupo_B", "grupo_C", "grupo_C", "grupo_E"),
target=c("grupo_C","grupo_D", "grupo_E", "grupo_F", "grupo_G", "grupo_H"),
value=c(2,3, 2, 3, 1, 3)
)
# Para estos flujos necesitamos crear nodos de origen y destino. Cada entidad estará relacionada con un flujo que ya hemos creado.
nodes <- data.frame(
name=c(as.character(links$source),
as.character(links$target)) %>% unique()
)
# Con el comando match de la boblioteca network3D establecemos un id pero sin usar el verdadero nombre que tiene en el dataframe. Esto es para economizar espacio y cálculo. En sÃntesis reformateamos las etiquetas.
links$IDsource <- match(links$source, nodes$name)-1
links$IDtarget <- match(links$target, nodes$name)-1
# Armado de la red de ploteo
p <- sankeyNetwork(Links = links, Nodes = nodes,
Source = "IDsource", Target = "IDtarget",
Value = "value", NodeID = "name",
sinksRight=FALSE)
p
Obtenemos los datos
library(readr)
Residuos_Agricolas <- read_delim("Residuos_Agricolas.csv",
delim = ";", escape_double = FALSE, locale = locale(decimal_mark = ",",
grouping_mark = "."), trim_ws = TRUE)
## Rows: 128 Columns: 7
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (4): Residuo, Finan, Canal, Exito
## dbl (3): Freq, Monto, TIR
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
RA <- Residuos_Agricolas
library(kableExtra)
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
RA %>%
kbl(caption = "Estrategias Omnicanal Residuos AgrÃcola") %>%
kable_classic(full_width = F, html_font = "Cambria")
| Residuo | Finan | Canal | Exito | Freq | Monto | TIR |
|---|---|---|---|---|---|---|
| Leguminosas | CyT_SN | Finca | No | 0 | 5.045360 | 0.2535910 |
| Frutas | CyT_SN | Finca | No | 0 | 47.610275 | 0.2078233 |
| Vinificacion | CyT_SN | Finca | No | 35 | 5.644619 | 0.2672615 |
| Destilacion | CyT_SN | Finca | No | 0 | 16.222262 | 0.2214048 |
| Leguminosas | BID | Finca | No | 0 | 33.161698 | 0.2447643 |
| Frutas | BID | Finca | No | 0 | 29.141628 | 0.2986382 |
| Vinificacion | BID | Finca | No | 17 | 14.624767 | 0.3130598 |
| Destilacion | BID | Finca | No | 0 | 44.302896 | 0.3006706 |
| Leguminosas | CyT_SN | Fabrica | No | 118 | 9.115637 | 0.2698038 |
| Frutas | CyT_SN | Fabrica | No | 154 | 23.207565 | 0.2258927 |
| Vinificacion | CyT_SN | Fabrica | No | 387 | 12.797466 | 0.2466779 |
| Destilacion | CyT_SN | Fabrica | No | 670 | 44.865320 | 0.3100166 |
| Leguminosas | BID | Fabrica | No | 4 | 26.801132 | 0.2732182 |
| Frutas | BID | Fabrica | No | 13 | 6.925694 | 0.2992606 |
| Vinificacion | BID | Fabrica | No | 89 | 39.793678 | 0.2565675 |
| Destilacion | BID | Fabrica | No | 3 | 9.156240 | 0.2299238 |
| Leguminosas | CyT_SN | Transport | Yes | 5 | 35.526418 | 0.2872053 |
| Frutas | CyT_SN | Transport | Yes | 11 | 47.152619 | 0.2145507 |
| Vinificacion | CyT_SN | Transport | Yes | 13 | 16.648074 | 0.2634952 |
| Destilacion | CyT_SN | Transport | Yes | 0 | 26.833314 | 0.2195922 |
| Leguminosas | BID | Transport | Yes | 1 | 19.341174 | 0.2543593 |
| Frutas | BID | Transport | Yes | 13 | 22.601838 | 0.2450026 |
| Vinificacion | BID | Transport | Yes | 14 | 40.268058 | 0.2399811 |
| Destilacion | BID | Transport | Yes | 0 | 37.684719 | 0.3228847 |
| Leguminosas | CyT_SN | Digital | Yes | 57 | 12.210556 | 0.2472374 |
| Frutas | CyT_SN | Digital | Yes | 14 | 41.120950 | 0.2427162 |
| Vinificacion | CyT_SN | Digital | Yes | 75 | 38.874747 | 0.2471511 |
| Destilacion | CyT_SN | Digital | Yes | 192 | 15.551385 | 0.3243603 |
| Leguminosas | BID | Digital | Yes | 140 | 14.022305 | 0.2932176 |
| Frutas | BID | Digital | Yes | 80 | 28.816282 | 0.3155251 |
| Vinificacion | BID | Digital | Yes | 76 | 12.351181 | 0.2518114 |
| Destilacion | BID | Digital | Yes | 20 | 47.369820 | 0.2432076 |
| Leguminosas | CyT_SN | Satelite | No | 0 | 26.351281 | 0.2477955 |
| Frutas | CyT_SN | Satelite | No | 0 | 26.314491 | 0.2349050 |
| Vinificacion | CyT_SN | Satelite | No | 35 | 31.655815 | 0.3153782 |
| Destilacion | CyT_SN | Satelite | No | 0 | 7.341824 | 0.2838068 |
| Leguminosas | BID | Satelite | No | 0 | 12.370262 | 0.2477694 |
| Frutas | BID | Satelite | No | 0 | 3.862011 | 0.3060934 |
| Vinificacion | BID | Satelite | No | 17 | 6.723596 | 0.2672441 |
| Destilacion | BID | Satelite | No | 0 | 39.963028 | 0.2237443 |
| Leguminosas | CyT_SN | Subasta | No | 118 | 24.711835 | 0.2762698 |
| Frutas | CyT_SN | Subasta | No | 154 | 45.041259 | 0.2907675 |
| Vinificacion | CyT_SN | Subasta | No | 387 | 45.453588 | 0.2513953 |
| Destilacion | CyT_SN | Subasta | No | 670 | 2.449325 | 0.2584758 |
| Leguminosas | BID | Subasta | No | 4 | 49.204602 | 0.3227747 |
| Frutas | BID | Subasta | No | 13 | 43.541173 | 0.2467088 |
| Vinificacion | BID | Subasta | No | 89 | 34.796374 | 0.2444328 |
| Destilacion | BID | Subasta | No | 3 | 32.878009 | 0.3173624 |
| Leguminosas | CyT_SN | Transport | Yes | 5 | 23.973666 | 0.2348534 |
| Frutas | CyT_SN | Transport | Yes | 11 | 1.573138 | 0.2253547 |
| Vinificacion | CyT_SN | Transport | Yes | 13 | 21.609484 | 0.2581293 |
| Destilacion | CyT_SN | Transport | Yes | 0 | 8.241094 | 0.2058652 |
| Leguminosas | BID | Transport | Yes | 1 | 23.890259 | 0.2500751 |
| Frutas | BID | Transport | Yes | 13 | 16.016141 | 0.2285907 |
| Vinificacion | BID | Transport | Yes | 14 | 49.224722 | 0.2098951 |
| Destilacion | BID | Transport | Yes | 0 | 36.019577 | 0.2345566 |
| Leguminosas | CyT_SN | Finca | Yes | 57 | 26.174184 | 0.2948512 |
| Frutas | CyT_SN | Finca | Yes | 14 | 28.526226 | 0.2502546 |
| Vinificacion | CyT_SN | Finca | Yes | 75 | 10.232841 | 0.2021643 |
| Destilacion | CyT_SN | Finca | Yes | 192 | 25.570125 | 0.3166573 |
| Leguminosas | BID | Finca | Yes | 140 | 29.311992 | 0.3006375 |
| Frutas | BID | Finca | Yes | 80 | 41.166050 | 0.3177034 |
| Vinificacion | BID | Finca | Yes | 76 | 43.078241 | 0.2261757 |
| Destilacion | BID | Finca | Yes | 20 | 43.175925 | 0.2810089 |
| Leguminosas | CyT_SN | Digital | No | 0 | 15.985891 | 0.2128424 |
| Frutas | CyT_SN | Digital | No | 0 | 15.761447 | 0.2318663 |
| Vinificacion | CyT_SN | Digital | No | 35 | 32.956215 | 0.3182123 |
| Destilacion | CyT_SN | Digital | No | 0 | 32.333631 | 0.3012755 |
| Leguminosas | BID | Digital | No | 0 | 21.374891 | 0.2777796 |
| Frutas | BID | Digital | No | 0 | 1.852035 | 0.2987916 |
| Vinificacion | BID | Digital | No | 17 | 32.367081 | 0.2080067 |
| Destilacion | BID | Digital | No | 0 | 45.997718 | 0.2234756 |
| Leguminosas | CyT_SN | Fabrica | No | 118 | 41.536685 | 0.2122048 |
| Frutas | CyT_SN | Fabrica | No | 154 | 1.206083 | 0.2808700 |
| Vinificacion | CyT_SN | Fabrica | No | 387 | 26.481520 | 0.2864143 |
| Destilacion | CyT_SN | Fabrica | No | 670 | 48.469134 | 0.2838597 |
| Leguminosas | BID | Fabrica | No | 4 | 38.206148 | 0.2804930 |
| Frutas | BID | Fabrica | No | 13 | 42.209727 | 0.2757560 |
| Vinificacion | BID | Fabrica | No | 89 | 22.852060 | 0.3024244 |
| Destilacion | BID | Fabrica | No | 3 | 44.702573 | 0.2211234 |
| Leguminosas | CyT_SN | Digital | Yes | 5 | 34.219375 | 0.3040887 |
| Frutas | CyT_SN | Digital | Yes | 11 | 28.626940 | 0.2697053 |
| Vinificacion | CyT_SN | Digital | Yes | 13 | 13.010424 | 0.3166970 |
| Destilacion | CyT_SN | Digital | Yes | 0 | 37.754493 | 0.2102126 |
| Leguminosas | BID | Digital | Yes | 1 | 48.688970 | 0.2942456 |
| Frutas | BID | Digital | Yes | 13 | 5.428478 | 0.2527598 |
| Vinificacion | BID | Digital | Yes | 14 | 42.662574 | 0.3198560 |
| Destilacion | BID | Digital | Yes | 0 | 15.002251 | 0.2434630 |
| Leguminosas | CyT_SN | Transport | Yes | 57 | 23.015961 | 0.2945058 |
| Frutas | CyT_SN | Transport | Yes | 14 | 4.604242 | 0.2429886 |
| Vinificacion | CyT_SN | Transport | Yes | 75 | 48.606932 | 0.2795270 |
| Destilacion | CyT_SN | Transport | Yes | 192 | 31.457314 | 0.2156794 |
| Leguminosas | BID | Transport | Yes | 140 | 42.905737 | 0.2147648 |
| Frutas | BID | Transport | Yes | 80 | 40.431942 | 0.2576676 |
| Vinificacion | BID | Transport | Yes | 76 | 7.327655 | 0.2221207 |
| Destilacion | BID | Transport | Yes | 20 | 7.474714 | 0.2634092 |
| Leguminosas | CyT_SN | Finca | No | 0 | 19.140201 | 0.2124003 |
| Frutas | CyT_SN | Finca | No | 0 | 40.295163 | 0.3029716 |
| Vinificacion | CyT_SN | Finca | No | 35 | 43.855603 | 0.2593660 |
| Destilacion | CyT_SN | Finca | No | 0 | 30.684381 | 0.2897241 |
| Leguminosas | BID | Finca | No | 0 | 13.189814 | 0.2026017 |
| Frutas | BID | Finca | No | 0 | 20.076823 | 0.2564366 |
| Vinificacion | BID | Finca | No | 17 | 48.514402 | 0.2523000 |
| Destilacion | BID | Finca | No | 0 | 45.602666 | 0.2692824 |
| Leguminosas | CyT_SN | Subasta | No | 118 | 30.620161 | 0.2142636 |
| Frutas | CyT_SN | Subasta | No | 154 | 42.738004 | 0.3057280 |
| Vinificacion | CyT_SN | Subasta | No | 387 | 49.210884 | 0.2685003 |
| Destilacion | CyT_SN | Subasta | No | 670 | 23.405391 | 0.2058261 |
| Leguminosas | BID | Subasta | No | 4 | 16.231956 | 0.2367642 |
| Frutas | BID | Subasta | No | 13 | 22.093450 | 0.2325167 |
| Vinificacion | BID | Subasta | No | 89 | 33.247242 | 0.2029512 |
| Destilacion | BID | Subasta | No | 3 | 43.350383 | 0.2518211 |
| Leguminosas | CyT_SN | Satelite | Yes | 5 | 49.513511 | 0.2554350 |
| Frutas | CyT_SN | Satelite | Yes | 11 | 12.748050 | 0.2119285 |
| Vinificacion | CyT_SN | Satelite | Yes | 13 | 37.406016 | 0.2695372 |
| Destilacion | CyT_SN | Satelite | Yes | 0 | 14.731254 | 0.3080514 |
| Leguminosas | BID | Satelite | Yes | 1 | 42.864212 | 0.2525879 |
| Frutas | BID | Satelite | Yes | 13 | 42.926096 | 0.2178687 |
| Vinificacion | BID | Satelite | Yes | 14 | 10.299154 | 0.2460185 |
| Destilacion | BID | Satelite | Yes | 0 | 40.148737 | 0.2345851 |
| Leguminosas | CyT_SN | Subasta | Yes | 57 | 16.453559 | 0.2755565 |
| Frutas | CyT_SN | Subasta | Yes | 14 | 23.071456 | 0.2651411 |
| Vinificacion | CyT_SN | Subasta | Yes | 75 | 13.297002 | 0.2296843 |
| Destilacion | CyT_SN | Subasta | Yes | 192 | 32.772192 | 0.3098589 |
| Leguminosas | BID | Subasta | Yes | 140 | 24.668619 | 0.2828906 |
| Frutas | BID | Subasta | Yes | 80 | 7.919658 | 0.2833550 |
| Vinificacion | BID | Subasta | Yes | 76 | 10.551447 | 0.2654349 |
| Destilacion | BID | Subasta | Yes | 20 | 11.105130 | 0.2535910 |
Intentaremos saber que residuos agrÃcolas han podido ser reciclados exitosamente presindiendo del canal del que se obtuvieron
library(alluvial)
library(dplyr)
RA %>% group_by(Residuo, Exito) %>% summarise(n = sum(Freq)) -> tit2d
## `summarise()` has grouped output by 'Residuo'. You can override using the
## `.groups` argument.
alluvial(tit2d[,1:2], freq=tit2d$n)
RA %>% group_by(Canal, Finan, Exito) %>%
summarise(n = sum(Freq)) -> tit3d
## `summarise()` has grouped output by 'Canal', 'Finan'. You can override using the
## `.groups` argument.
alluvial(tit3d[,1:3], freq=tit3d$n)
RA %>% group_by(Canal, Finan, Residuo) %>%
summarise(n = sum(Freq)) -> tit3d
## `summarise()` has grouped output by 'Canal', 'Finan'. You can override using the
## `.groups` argument.
alluvial(tit3d[,1:3], freq=tit3d$n)