Une approche alternative peut être d'utiliser des panneaux absolus de brillant. Au lieu d'essayer de trouver un arrangement de grille pour adapter toutes les pièces à l'écran, utilisez un panneau absolu avec des boutons de pliage pour choisir sélectivement quelles boîtes apparaissent à un moment donné. Cela permet à l'utilisateur de choisir quelles parcelles et quelles informations il souhaite présenter. L'idée a évolué à partir de l'application superzip https://shiny.rstudio.com/gallery/superzip-example.html, mais fonctionne bien dans flexdashboard.
Dans l'exemple ci-dessous, les tracés peuvent apparaître ou être masqués lors du chargement de la page.Cliquez sur les boutons pour les faire apparaître ou disparaître. Cela a été très utile lors du mélange de feuillets avec des parcelles, pour éviter de noyer la carte avec des parcelles (où, comme auparavant, les parcelles étaient limitées en raison de problèmes de noyade).
---
title: "Demo"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
---
```{r setup, include=FALSE}
library(flexdashboard)
library(rmarkdown)
library(plotly)
library(shiny)
```
Column {data-width=400}
--------------------------------
### Planet Earth
```{r}
library(leaflet)
m = leaflet() %>% addTiles()
m # a map with the default OSM tile layer
```
```{r}
#plot setup
mtcars$am[which(mtcars$am == 0)] <- 'Automatic'
mtcars$am[which(mtcars$am == 1)] <- 'Manual'
mtcars$am <- as.factor(mtcars$am)
p <- plot_ly(mtcars, x = ~wt, y = ~hp, z = ~qsec, color = ~am, colors = c('#BF382A', '#0C4B8E')) %>%
add_markers() %>%
layout(scene = list(xaxis = list(title = 'Weight'),
yaxis = list(title = 'Gross horsepower'),
zaxis = list(title = '1/4 mile time')))
set.seed(100)
d <- diamonds[sample(nrow(diamonds), 1000), ]
##########################
absolutePanel(id = "controls", class = "panel panel-default", fixed = TRUE,
draggable = TRUE, top = 70, left = "auto", right = 20, bottom = "auto",
width = '30%', height = 'auto',
style = "overflow-y:scroll; max-height: 1000px; opacity: 0.9; style = z-index: 400",
h4(strong("Plot Explorer")),
HTML('<button data-toggle="collapse" data-target="#box1" class="btn-block btn-primary">dot plot</button>'),
tags$div(id = 'box1', class="collapse in",
plot_ly(d, x = ~carat, y = ~price, color = ~carat,
size = ~carat, text = ~paste("Clarity: ", clarity)) %>% layout(height=200)
),
HTML('<button data-toggle="collapse" data-target="#box2" class="btn-block btn-warning">histogram</button>'),
tags$div(id = 'box2', class="collapse",
plot_ly(x = rnorm(500), type = "histogram", name = "Histogram") %>% layout(height=200)
),
HTML('<button data-toggle="collapse" data-target="#box3" class="btn-block btn-danger">spinny thing</button>'),
tags$div(id = 'box3', class="collapse in",
p %>% layout(height=200)
)
)
```
Toute façon de garder les commandes de mise en page de la barre de côté et ont la mise en page que vous avez fourni? –
@TylerRinker Cela signifie que vous voulez mettre des contrôles brillants dans la barre latérale qui ressemble à un panneau, ou vous voulez ajouter une deuxième barre latérale (qui ressemble plus à une barre latérale) à cette mise en page? – dww
Le plus tard ... quelque chose comme ceci: http://i.imgur.com/VqYbwwC.png –