Gráfica

Datos

Los datos que se presentan a continuación, van de acuerdo con los filtros seleccionados en el sidebar

---
title: "Palmer Penguins Dashboard"
author: "Fernanda R. / Eriana-129"
output:
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    source_code: embed
    theme: spacelab
---

```{r setup, include=FALSE}
# Cargar paquetes
library(flexdashboard)
library(palmerpenguins)
library(tidyverse)
library(plotly)
library(crosstalk)
library(ggthemes)

# Cargar palmerpenguins
data1 <- penguins %>% 
  filter(!is.na(bill_length_mm) & !is.na(body_mass_g)) %>% #sin NA
  mutate(fuente = as.factor("Data1"))%>% #agrega columna de la fuente
  mutate(Index = row_number())%>% #crear nrow
  arrange(Index)%>%
  select(10,1:9) #reordenar

data2 <- penguins %>% 
  filter(!is.na(bill_length_mm) & !is.na(body_mass_g)) %>% #sin NA
  mutate(fuente = as.factor("Data2"))%>% #agrega columna de la fuente
  mutate(body_mass_g = body_mass_g + 50)%>%
  mutate(bill_length_mm = bill_length_mm + 50)%>%
  mutate(Index = row_number())%>% #crear nrow
  arrange(Index)%>%
  select(10,1:9) #reordenar

data2 <- data2 %>%
  mutate(island = as.factor(case_when( # nombre viejo = nombre nuevo
    island == "Biscoe" ~ "Alce",
    island == "Dream" ~ "Lobo",
    island == "Torgersen" ~ "Venado",
    TRUE ~ island  # Mantiene los valores que no coincidan
  )))

data2 <- data2 %>%
  mutate(species = as.factor(case_when( # nombre viejo = nombre nuevo
    species == "Adelie" ~ "Manzana",
    species == "Chinstrap" ~ "Nuez",
    species == "Gentoo" ~ "Pera",
    TRUE ~ species  # Mantiene los valores que no coincidan
  )))

data_combined <- bind_rows(data1, data2)

shared_data <- SharedData$new(data_combined)


```
  
# {.sidebar}  
Código adaptado de: <a href="https://github.com/fjodor/exploring-plotly/tree/main" target="_blank">Wolf Riepl</a>  

Visita mi perfil de GitHub :D <a href="https://github.com/Eriana-129">Fer R. / Eriana-129</a>
 

```{r}
# Checkbox para seleccionar especies
filter_select(
  id = "genero", 
  label = "Género:", 
  sharedData = shared_data, 
  group = ~sex
)

filter_checkbox(
  id = "especies1", 
  label = "Selecciona las especies/frutas:", 
  sharedData = shared_data, 
  group = ~species
)
```
![](https://allisonhorst.github.io/palmerpenguins/reference/figures/lter_penguins.png){.lightbox width="80%"} <br> [Artwork by @allison_horst]{style="font-size: 1rem; color: gray; font-style: italic;"}


# Gráfica
```{r}
# Crear el gráfico con una sola capa
p <- shared_data %>%
  plot_ly(
    x = ~body_mass_g, 
    y = ~bill_length_mm, 
    color = ~species, 
    symbol = ~fuente, # Diferenciar con símbolos
    hoverinfo = "text",
    name = ~species,
    text = ~paste("Index:", Index,
                  "<br>Especie:", species,
                  "<br>Isla:", island,
                  "<br>Masa corporal (g):", body_mass_g,
                  "<br>Longitud del pico (mm):", bill_length_mm)
  ) %>%
  layout(
    xaxis = list(title = "Masa corporal (g)"),
    yaxis = list(title = "Longitud del pico (mm)"),
    legend = list(font = list(size = 16))
  )

# Mostrar el gráfico
p
```

# Datos

Los datos que se presentan a continuación, van de acuerdo con los filtros seleccionados en el sidebar

```{css, echo = FALSE}
.chart-wrapper .chart-stage {
    overflow: visible; /*evita que los botones de paginacion se corten
}
```


```{r}
DT::datatable(
  shared_data, 
  fillContainer = FALSE, #evita que los botones de paginacion se corten
  filter = 'top',
  rownames = FALSE,
  options = list(
    lengthMenu = c(5, 10, 25, 50, 100),
    scrollX = TRUE,
    autoWidth = TRUE,
    columnDefs = list(
      list(targets = 0, searchable = FALSE)) # Desactivar el filtro en la primera columna
  )
)
```