Ein alternativer Ansatz kann die Verwendung von Absolute Panels von glänzend sein. Anstatt zu versuchen, eine Rasteranordnung zu finden, die zu allen Teilen auf dem Bildschirm passt, verwenden Sie eine absolute Fläche mit zusammenklappbaren Schaltflächen, um selektiv auszuwählen, welche Felder zu einer bestimmten Zeit erscheinen. Dies ermöglicht dem Benutzer auszuwählen, welche Plots und Informationen präsentiert werden sollen. Die Idee entstand aus der Superzip-App https://shiny.rstudio.com/gallery/superzip-example.html, funktioniert aber gut in Flexdashboard.
Im folgenden Beispiel können Plots beim Laden der Seite angezeigt oder ausgeblendet werden.Klicken Sie auf die Schaltflächen, um sie anzuzeigen oder zu entfernen. Dies war sehr hilfreich, wenn Sie Flugblätter mit Grundstücken mischen, um zu vermeiden, dass die Karte mit Grundstücken überflutet wird (wobei Flächen wie zuvor aufgrund von Ertrinkungs-Problemen begrenzt waren).
---
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)
)
)
```
Jede Art und Weise die Seitenleiste Layout Kontrollen zu halten und haben das Layout, das Sie zur Verfügung gestellt? –
@TylerRinker Das bedeutet, dass Sie glänzende Steuerelemente in der Sidebar platzieren möchten, die wie ein Bedienfeld aussieht, oder Sie möchten diesem Layout eine zweite Seitenleiste hinzufügen (die mehr wie eine Seitenleiste aussieht)? – dww
Das spätere ... etwas wie das: http://i.imgur.com/VqYbwwC.png –