shinydashboard'da etkileşimli öğeler

shinydashboard ile Panolar Oluşturma

Png Kee Seng

Researcher

Senaryo

  • Londra'da bir tur acentesinde çalışıyoruz.

  • Turistlerin kalacak yere ihtiyacı var.

  • Onlara nasıl yardımcı olabiliriz?

Londra'nın bir grafiği

  • Belirli fiyat aralığındaki ilan sayısı
  • Özel odaların oranı
  • Ortalama fiyatlar
  • Bazı grafikler
  • Bir veri tablosu
  • Londra haritası
1 Görsel: Freepik
shinydashboard ile Panolar Oluşturma

Panonun taslağı

Panonun kabaca bir taslağı.

shinydashboard ile Panolar Oluşturma

Panoyu oluşturma: İskeleti kurma

İstediğimiz başlık ve kenar çubuğu düğmeleriyle boş bir shinydashboard kurarak tel kafes oluşturma.

header <- dashboardHeader(
  title = "Ev kiralama ilanları")
sidebar <- dashboardSidebar()
body <- dashboardBody()
ui <- dashboardPage(header, 
                    sidebar, 
                    body)
server <- function(input, output) {}
shinyApp(ui, server)
shinydashboard ile Panolar Oluşturma

Panoyu oluşturma: ValueBox ekleme

Tel kafes çalışmamızın parçası olarak valueBox ekleme.

body içinde:

fluidRow(
    valueBoxOutput(outputId = "count"),
    valueBoxOutput(outputId = "prop"),
    valueBoxOutput(outputId = "avg"))

server içinde:

output$count <- renderValueBox({
    valueBox(..., icon = ...)})
output$prop <- renderValueBox(...)
...
shinydashboard ile Panolar Oluşturma

Panoyu oluşturma: Kontroller ekleme

Girdi ekleme — kullanıcı kontrolleri.

body içinde:

box(
    side = "right", ...,
    sliderInput(inputId = "range",
        label = "Fiyat aralığı seçin:",
        min = 0,
        max = 25000,
        value = c(0,25000))
        ))

serverı güncelleyin; input$range[1] ve input$range[2] kullanın

shinydashboard ile Panolar Oluşturma

Panoyu oluşturma: Etkileşimli grafikler ekleme

plotly ile etkileşimli grafikler ekleme.

body içinde:

plotlyOutput("plots", 
    height = 500, 
    width = 600)

server içinde:

output$plots <- renderPlotly({
      ...
  })
shinydashboard ile Panolar Oluşturma

Panoyu oluşturma: Başka bir grafik ekleme

Açılır menü ile aynı pano sayfasında ikinci bir grafik ekleme.

body içinde:

selectInput(inputId = "select", 
    label = "Grup seçin:", 
    choices = c("Neighbourhood", 
            "Room Type"))

server içinde:

output$plots <- renderPlotly({
    if (input$select == ...){plot1}
    else if(input$select == ...){plot2}
  })
shinydashboard ile Panolar Oluşturma

Panoyu oluşturma: Açıklama ve sekmeler ekleme

Bu pano için açıklama sağlayacak ek metin ekleme.

body içinde:

box(side = "right", ...,
    title = "Londra'ya hoş geldiniz!", 
    "...")

body içinde güncelleyin:

tabBox(id = "tabset", ...,
    tabPanel("Grafikler", ...),
    tabPanel("Veri tablosu", ...)
shinydashboard ile Panolar Oluşturma

Panoyu oluşturma: Etkileşimli tablolar ekleme

dataTable işlevleriyle etkileşimli tablolar ekleme.

shiny işlevlerini kullanabiliriz.

body içinde:

dataTableOutput("table")

server içinde:

output$table <- 
    renderDataTable(listings)
shinydashboard ile Panolar Oluşturma

Panoyu oluşturma: Etkileşimli harita ekleme

Panoya bir leaflet haritası ekleme.

sidebar içinde:

sidebarMenu(
    menuItem("Grafikler", ...),
    menuItem("Harita", ...))

body içinde:

leafletOutput("map",...)

server içinde:

output$map <- renderLeaflet(map)
shinydashboard ile Panolar Oluşturma

Vamos praticar!

shinydashboard ile Panolar Oluşturma

Preparing Video For Download...