Resumen

Row

confirmed

223,759

death

22,902 (10.2%)

Row

Casos acumulados diarios por tipo (Solo España)

Comparación

Column

Nuevos casos confirmados diarios

Distribución de casos por tipo

Información

El dashboard del Coronavirus: el caso de España

Este cuadro de Coronavirus: el caso de España ofrece una visión general de la epidemia de coronavirus novedoso COVID-19 (2019-nCoV) para España. Este cuadro está construido con R usando el marco R Makrdown.

Código

El código detrás de este panel está disponible en la esquina derecha del dashboard como “Source code”.

Datos

Los datos de entrada para este cuadro son el conjunto de datos disponible del paquete {coronavirus} R. Asegúrese de descargar la versión de desarrollo del paquete para tener los últimos datos:

install.packages (“devtools”) devtools :: install_github (“RamiKrispin / coronavirus”) Los datos y el cuadro se actualizan diariamente.

Los datos sin procesar se extraen del depósito de coronavirus del Centro de la Universidad de Johns Hopkins para Ciencia e Ingeniería de Sistemas (JHU CCSE).

Información y contacto

Puedes replicar mas o menos el cuadro de mando copiando el código y adaptándolo a tu país.

Para cualquier pregunta o comentario, puede contactarme.

Actualizar

Los datos son del sábado 25 de abril de 2020 y el tablero se actualizó el domingo 26 de abril de 2020.

---
title: "Coronavirus en España"
author: "Víctor López"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    # social: ["facebook", "twitter", "linkedin"]
    source_code: embed
    vertical_layout: fill
editor_options: 
  chunk_output_type: console
---

```{r setup, include=FALSE}
#------------------ Packages ------------------
#install.packages (c ("devtools", "flexdashboard", "leaflet", "leafpop")) 
#devtools :: install_github ("RamiKrispin / coronavirus")
library(flexdashboard)
# install.packages("devtools")
#devtools::install_github("RamiKrispin/coronavirus", force = TRUE)
library(coronavirus)
data(coronavirus)
update_datasets()
# View(coronavirus)
# max(coronavirus$date)

`%>%` <- magrittr::`%>%`
#------------------ Parameters ------------------
# Set colors
# https://www.w3.org/TR/css-color-3/#svg-color
confirmed_color <- "purple"
active_color <- "#1f77b4"
recovered_color <- "forestgreen"
death_color <- "red"
#------------------ Data ------------------
df <- coronavirus %>%
  # dplyr::filter(date == max(date)) %>%
  dplyr::filter(Country.Region == "Spain") %>%
  dplyr::group_by(Country.Region, type) %>%
  dplyr::summarise(total = sum(cases)) %>%
  tidyr::pivot_wider(
    names_from = type,
    values_from = total
  ) %>%
  # dplyr::mutate(unrecovered = confirmed - ifelse(is.na(recovered), 0, recovered) - ifelse(is.na(death), 0, death)) %>%
  dplyr::mutate(unrecovered = confirmed - ifelse(is.na(death), 0, death)) %>%
  dplyr::arrange(-confirmed) %>%
  dplyr::ungroup() %>%
  dplyr::mutate(country = dplyr::if_else(Country.Region == "United Arab Emirates", "UAE", Country.Region)) %>%
  dplyr::mutate(country = dplyr::if_else(country == "Mainland China", "China", country)) %>%
  dplyr::mutate(country = dplyr::if_else(country == "North Macedonia", "N.Macedonia", country)) %>%
  dplyr::mutate(country = trimws(country)) %>%
  dplyr::mutate(country = factor(country, levels = country))

df_daily <- coronavirus %>%
  dplyr::filter(Country.Region == "Spain") %>%
  dplyr::group_by(date, type) %>%
  dplyr::summarise(total = sum(cases, na.rm = TRUE)) %>%
  tidyr::pivot_wider(
    names_from = type,
    values_from = total
  ) %>%
  dplyr::arrange(date) %>%
  dplyr::ungroup() %>%
  #dplyr::mutate(active = confirmed - death - recovered) %>%
  dplyr::mutate(active = confirmed - death) %>%
  dplyr::mutate(
    confirmed_cum = cumsum(confirmed),
    death_cum = cumsum(death),
    # recovered_cum = cumsum(recovered),
    active_cum = cumsum(active)
  )


df1 <- coronavirus %>% dplyr::filter(date == max(date))
```

Resumen
=======================================================================

Row {data-width=400}
-----------------------------------------------------------------------

### confirmed {.value-box}

```{r}

valueBox(
  value = paste(format(sum(df$confirmed), big.mark = ","), "", sep = " "),
  caption = "Total casos confirmados",
  icon = "fas fa-user-md",
  color = confirmed_color
)
```
















### death {.value-box}

```{r}

valueBox(
  value = paste(format(sum(df$death, na.rm = TRUE), big.mark = ","), " (",
    round(100 * sum(df$death, na.rm = TRUE) / sum(df$confirmed), 1),
    "%)",
    sep = ""
  ),
  caption = "Muertes (Ratio de muertes)",
  icon = "fas fa-heart-broken",
  color = death_color
)
```


Row
-----------------------------------------------------------------------

### **Casos acumulados diarios por tipo** (Solo España)
    
```{r}
plotly::plot_ly(data = df_daily) %>%
  plotly::add_trace(
    x = ~date,
    # y = ~active_cum,
    y = ~confirmed_cum,
    type = "scatter",
    mode = "lines+markers",
    # name = "Active",
    name = "Confirmados",
    line = list(color = active_color),
    marker = list(color = active_color)
  ) %>%
  plotly::add_trace(
    x = ~date,
    y = ~death_cum,
    type = "scatter",
    mode = "lines+markers",
    name = "Muertes",
    line = list(color = death_color),
    marker = list(color = death_color)
  ) %>%
  plotly::add_annotations(
    x = as.Date("2020-02-26"),
    y = 1,
    text = paste("Primer caso"),
    xref = "x",
    yref = "y",
    arrowhead = 5,
    arrowhead = 3,
    arrowsize = 1,
    showarrow = TRUE,
    ax = -10,
    ay = -90
  ) %>%
  plotly::add_annotations(
    x = as.Date("2020-02-13"),
    y = 3,
    text = paste("1a Muerte"),
    xref = "x",
    yref = "y",
    arrowhead = 5,
    arrowhead = 3,
    arrowsize = 1,
    showarrow = TRUE,
    ax = -90,
    ay = -90
  ) %>%
  plotly::add_annotations(
    x = as.Date("2020-03-14"),
    y = 14,
    text = paste(
      "Confinamiento"
    ),
    xref = "x",
    yref = "y",
    arrowhead = 5,
    arrowhead = 3,
    arrowsize = 1,
    showarrow = TRUE,
    ax = -10,
    ay = -90
  ) %>%
  plotly::layout(
    title = "",
    yaxis = list(title = "Número de casos acumulados"),
    xaxis = list(title = "Fecha"),
    legend = list(x = 0.1, y = 0.9),
    hovermode = "compare"
  )
```

Comparación
=======================================================================


Column {data-width=400}
-------------------------------------


### **Nuevos casos confirmados diarios**
    
```{r}
daily_confirmed <- coronavirus %>%
  dplyr::filter(type == "confirmed") %>%
  dplyr::filter(date >= "2020-02-24") %>%
  dplyr::mutate(country = Country.Region) %>%
  dplyr::group_by(date, country) %>%
  dplyr::summarise(total = sum(cases)) %>%
  dplyr::ungroup() %>%
  tidyr::pivot_wider(names_from = country, values_from = total)

#----------------------------------------
# Plotting the data

daily_confirmed %>%
  plotly::plot_ly() %>%
  plotly::add_trace(
    x = ~date,
    y = ~Netherlands,
    type = "scatter",
    mode = "lines+markers",
    name = "Netherlands"
  ) %>%
   plotly::add_trace(
     x = ~date,
     y = ~Germany,
     type = "scatter",
     mode = "lines+markers",
     name = "Germany"
   ) %>%
  plotly::add_trace(
    x = ~date,
    y = ~Spain,
    type = "scatter",
    mode = "lines+markers",
    name = "Spain"
  ) %>%
  plotly::add_trace(
    x = ~date,
    y = ~Italy,
    type = "scatter",
    mode = "lines+markers",
    name = "Italy"
  ) %>%
  plotly::layout(
    title = "",
    legend = list(x = 0.1, y = 0.9),
    yaxis = list(title = "Nuevos casos confirmados"),
    xaxis = list(title = "Fecha"),
    # paper_bgcolor = "black",
    # plot_bgcolor = "black",
    # font = list(color = 'white'),
    hovermode = "compare",
    margin = list(
      # l = 60,
      # r = 40,
      b = 10,
      t = 10,
      pad = 2
    )
  )
```
 
### **Distribución de casos por tipo**

```{r daily_summary}
df_EU <- coronavirus %>%
  # dplyr::filter(date == max(date)) %>%
  dplyr::filter(Country.Region == "Spain" |
    Country.Region == "Netherlands" |
    Country.Region == "Italy" |
    Country.Region == "France" |
    Country.Region == "Germany") %>%
  dplyr::group_by(Country.Region, type) %>%
  dplyr::summarise(total = sum(cases)) %>%
  tidyr::pivot_wider(
    names_from = type,
    values_from = total
  ) %>%
  # dplyr::mutate(unrecovered = confirmed - ifelse(is.na(recovered), 0, recovered) - ifelse(is.na(death), 0, death)) %>%
  dplyr::mutate(unrecovered = confirmed - ifelse(is.na(death), 0, death)) %>%
  dplyr::arrange(confirmed) %>%
  dplyr::ungroup() %>%
  dplyr::mutate(country = dplyr::if_else(Country.Region == "United Arab Emirates", "UAE", Country.Region)) %>%
  dplyr::mutate(country = dplyr::if_else(country == "Mainland China", "China", country)) %>%
  dplyr::mutate(country = dplyr::if_else(country == "North Macedonia", "N.Macedonia", country)) %>%
  dplyr::mutate(country = trimws(country)) %>%
  dplyr::mutate(country = factor(country, levels = country))

plotly::plot_ly(
  data = df_EU,
  x = ~country,
  # y = ~unrecovered,
  y = ~ confirmed,
  # text =  ~ confirmed,
  # textposition = 'auto',
  type = "bar",
  name = "Confirmados",
  marker = list(color = active_color)
) %>%
  plotly::add_trace(
    y = ~death,
    # text =  ~ death,
    # textposition = 'auto',
    name = "Muertes",
    marker = list(color = death_color)
  ) %>%
  plotly::layout(
    barmode = "stack",
    yaxis = list(title = "Casos Totales"),
    xaxis = list(title = "Países"),
    hovermode = "compare",
    margin = list(
      # l = 60,
      # r = 40,
      b = 10,
      t = 10,
      pad = 2
    )
  )
```


Información
=======================================================================

**El dashboard del Coronavirus: el caso de España**

Este cuadro de Coronavirus: el caso de España ofrece una visión general de la epidemia de coronavirus novedoso COVID-19 (2019-nCoV) para España. Este cuadro está construido con R usando el marco R Makrdown.

**Código**

El código detrás de este panel está disponible en la esquina derecha del dashboard como "Source code".

**Datos**

Los datos de entrada para este cuadro son el conjunto de datos disponible del paquete {coronavirus} R. Asegúrese de descargar la versión de desarrollo del paquete para tener los últimos datos:

install.packages ("devtools")
devtools :: install_github ("RamiKrispin / coronavirus")
Los datos y el cuadro se actualizan diariamente.

Los datos sin procesar se extraen del depósito de coronavirus del Centro de la Universidad de Johns Hopkins para Ciencia e Ingeniería de Sistemas (JHU CCSE).

**Información y contacto**

Puedes replicar mas o menos el cuadro de mando copiando el código y adaptándolo a tu país.

Para cualquier pregunta o comentario, puede contactarme.

**Actualizar**

Los datos son del sábado 25 de abril de 2020 y el tablero se actualizó el domingo 26 de abril de 2020.