Wireframing
Schauen wir uns noch einmal das vorherige Beispiel für ein Dashboard mit Analyseergebnissen eines Fußballturniers an. In den vorherigen Übungen hast du bereits den Header und die Sidebar eingerichtet.
Ein Button in der Sidebar wird mit menuItem() definiert und befindet sich innerhalb von sidebarMenu(). Dir ist vielleicht aufgefallen, dass diese Buttons bisher nichts tun. Jetzt verknüpfst du diese Sidebar-Buttons mit einer anderen Seite im Body der UI. Das gehört weiterhin zum Wireframing-Prozess, in dem du die Positionen der einzelnen Elemente festlegst. Jede Seite im Body wird mit tabItem() definiert und muss innerhalb von tabItems stehen.
Die Pakete shiny und shinydashboard wurden bereits für dich geladen. Außerdem wurde der Dashboard-Header bereits als header gespeichert.
Diese Übung ist Teil des Kurses
Dashboards mit shinydashboard erstellen
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
library(shiny)
library(shinydashboard)
header <- dashboardHeader(
title = "Analysis results for global soccer tournament",
titleWidth = 400,
dropdownMenu(type = "messages",
messageItem("Colleage", "Hello world!")),
dropdownMenu(type = "notifications",
notificationItem("Have you rested today?"),
taskItem("Dashboard completion", value = 20)))
sidebar <- dashboardSidebar(
sidebarMenu(
width = 400,
id = "pages",
menuItem("Match details", tabName = "matches", icon = icon("futbol"),
badgeLabel = "New content!", badgeColor = "green"),
menuItem("Overall results", tabName = "overall",
menuSubItem("Charts", tabName = "charts"),
menuSubItem("Data table", tabName = "datatable", icon=icon("file-excel"))),
menuItem("A slider", sliderInput("slider", "Number of goals", min=0, max=10, value = 2))
)
)
body <- dashboardBody(
# Link "matches" to an empty page in the body
___(
___(___, "Match information goes here")
)
)
ui <- dashboardPage(header, sidebar, body)
server <- function(input, output){}
shinyApp(ui, server)