Study
Shiny

Render Plot dengan ggplot2

Penjelasan

Kombinasi Shiny dengan ggplot2 adalah salah satu alasan utama Shiny populer di kalangan data analyst R. Cukup bungkus kode ggplot() biasa di dalam renderPlot({...}), dan pasangkan dengan plotOutput("id") di UI. Karena berada di dalam reactive context, kamu bisa memakai input$x langsung di dalam pemanggilan ggplot() — misalnya memfilter data berdasarkan slider, atau mengubah variabel yang di-plot berdasarkan selectInput. Setiap kali input yang relevan berubah, grafik otomatis di-render ulang tanpa kode tambahan apapun.

Contoh Konsep

library(shiny)
library(ggplot2)

ui <- fluidPage(
  sliderInput("bins", "Jumlah bin:", min = 5, max = 50, value = 20),
  plotOutput("histogram")
)

server <- function(input, output) {
  output$histogram <- renderPlot({
    ggplot(mtcars, aes(x = mpg)) +
      geom_histogram(bins = input$bins, fill = "steelblue") +
      labs(title = "Distribusi MPG", x = "Miles per Gallon")
  })
}

shinyApp(ui = ui, server = server)

Praktikum

Lengkapi renderPlot agar membuat scatter plot mtcars antara wt (sumbu x) dan mpg (sumbu y), dengan warna titik dari input 'warna'.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Untuk grafik yang berat dihitung (misalnya dari dataset besar), pisahkan pemrosesan data ke dalam reactive() terpisah dari renderPlot() — supaya data hanya dihitung ulang saat input yang relevan berubah, bukan setiap kali plot digambar ulang.