Interaccion III

Col 1

Gráfica de habitantes por población

col2

Mapa poblaciones CARM

> Mapa de Murcia

Tabla de datos

Tabla

Instrucciones

col2

Herramientas

Ejemplo de aplicación con interacciones multiples que hace uso de htmlwidgets. Esta aplicación se ejecuta completamente en el lado cliente.

El uso compartido de la base de datos se hace gracias a la librería crosstalk.

Hemos usado las siguientes librerías de R:

---
title: "Poblaciones CARM"
author: "Taller-UMUR"
date: "2019"
output:
  flexdashboard::flex_dashboard:
    navbar:
      - { title: "enRdados", href: "http://www.enrdados.net", align: right }
    orientation: columns
    vertical_layout: fill
    theme: paper
    source_code: embed
editor_options: 
  chunk_output_type: console
---

```{r}
# Taller UMUR- 29 - nov-2019
# Shiny facil con flexdashboard
# Fernando Villalba
#####################################
# app3 - ejemplo uso de htmlwidgets #
#####################################
# publicado en RPubs como:
# http://rpubs.com/vilBeer/taller_flex_app3

library(flexdashboard)
library(ggplot2)
library(plotly)
library(DT)
library(leaflet)
library(crosstalk)

# leemos los datos de un csv
pob<-read.csv2('pob_murcia1.csv',stringsAsFactors = FALSE)#,fileEncoding="utf-8")

# Transformamos a numero la lat y long
pob$long<-as.numeric(pob$long)
pob$lat<-as.numeric(pob$lat)

#iconv(pob$Municipio, to = "ISO-8859-1")

# Ordenamos los datos de poblacion del 2018
pob<-pob[order(pob$X2018, decreasing = TRUE),]
# para que nos salga ordenado en la grafica ordenamos los niveles
# del factor por orden tambien de población
pob$Municipio<- factor(pob$Municipio,levels=pob$Municipio)

# Usamos crosstalk para compartir entre htmlwidgets
dat_compartidos<-pob[,c('Municipio','lat','long','X2018')]
# sd=shared data (datos compartidos)
sd <- highlight_key(dat_compartidos,~Municipio)
#sd <- SharedData$new(dat_compartidos)

```

# Interaccion III {data-icon="ion-stats-bars"}

## Col 1 {data-width=400}

### Gráfica de habitantes por población

```{r barras, message=FALSE, warning=FALSE}
# creamos grafico de barras con poblacion de cada municipio
p <-  ggplot(sd, aes(x = Municipio, y = X2018))+
  labs(y = "Poblacion hab")+
  theme(axis.text.x =element_text(color="blue", size=6,angle=90, vjust=.3))+
  scale_y_continuous(labels = scales::comma)+
  geom_col(fill=rainbow(45))+
  coord_flip() 

#Compartimos con crosstalk los datos
# on = como seleccionamos
# off = como salimos de la seleccion
# ver : https://www.rdocumentation.org/packages/plotly/versions/4.9.0/topics/highlight
gg <- highlight(ggplotly(p), on="plotly_click", off = "plotly_doubleclick")
gg

```

## col2 

### Mapa poblaciones CARM

```{r}
#PARA MAS INFORMACION DE COMO DIBUJAR MAPAS CON LEAFLET:
# https://enrdados.netlify.com/post/leaflet-mapas-dinamicos/

 leaflet(sd) %>% addTiles() %>% addMarkers(popup= ~paste("Habitantes de ", Municipio, X2018))
```
> Mapa de Murcia

### Tabla de datos

```{r}

DT::datatable(sd,
              rownames = FALSE,
              options = list(
                  bPaginate = TRUE,
                  pageLength = 25
    ))

```

> Tabla 

# Instrucciones {data-icon="fa-map"}

## col2

### Herramientas

Ejemplo de aplicación con interacciones multiples que hace uso de htmlwidgets.
Esta aplicación se ejecuta completamente en el lado cliente.

El uso compartido de la base de datos se hace gracias a la librería `crosstalk`.

Hemos usado las siguientes librerías de R:

* [Flexdashboard](https://rmarkdown.rstudio.com/flexdashboard/) para crear el contenido
* [Leaflet](https://rstudio.github.io/leaflet/) para el mapa interactivo
* [DT](https://rstudio.github.io/DT/) para hacer la tabla interactiva
* [Crosstalk](https://rstudio.github.io/crosstalk/) para usar unos datos comunes entre htmlwidgets
* [Ion icons](https://ionicons.com/) y [Font Awesome](https://fontawesome.com/) para los iconos