MulaiMulai sekarang secara gratis

Tambahkan warna ke plot Anda: masukan warna

Paket colourpicker menyediakan masukan warna, yang tersedia melalui fungsi colourInput(). Meskipun masukan warna bukan bagian dari paket shiny, cara kerjanya sama seperti input lainnya.

Sebuah masukan warna memiliki banyak argumen yang dapat Anda jelajahi, namun kita hanya akan menggunakan argumen dasar: inputId, label, dan value. Argumen value menerima warna yang digunakan sebagai nilai awal. Warna dapat ditentukan dalam beberapa format berbeda, tetapi yang paling mudah adalah cukup menggunakan nama warna dalam bahasa Inggris seperti "red" atau "yellow".

Latihan ini adalah bagian dari kursus

Studi Kasus: Membangun Aplikasi Web dengan Shiny di R

Lihat Kursus

Petunjuk latihan

Kode untuk aplikasi Shiny dari latihan sebelumnya telah disediakan. Tugas Anda adalah mengganti radio button yang digunakan untuk memilih warna dengan masukan warna. Secara khusus:

  • Muat paket colourpicker.
  • Temukan fungsi UI yang membuat radio button untuk memilih warna, lalu ganti dengan masukan warna (baris 12).
  • Masukan warna tersebut harus memiliki ID "color", label "Point color", dan warna default "blue".

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Load the colourpicker package
___

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      textInput("title", "Title", "GDP vs life exp"),
      numericInput("size", "Point size", 1, 1),
      checkboxInput("fit", "Add line of best fit", FALSE),

      # Replace the radio buttons with a color input
      radioButtons("color", "Point color",
                   choices = c("blue", "red", "green", "black")),
      selectInput("continents", "Continents",
                  choices = levels(gapminder$continent),
                  multiple = TRUE,
                  selected = "Europe"),
      sliderInput("years", "Years",
                  min(gapminder$year), max(gapminder$year),
                  value = c(1977, 2002))
    ),
    mainPanel(
      plotOutput("plot")
    )
  )
)

# Define the server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    data <- subset(gapminder,
                   continent %in% input$continents &
                   year >= input$years[1] & year <= input$years[2])
    
    p <- ggplot(data, aes(gdpPercap, lifeExp)) +
      geom_point(size = input$size, col = input$color) +
      scale_x_log10() +
      ggtitle(input$title)
    
    if (input$fit) {
      p <- p + geom_smooth(method = "lm")
    }
    p
  })
}

shinyApp(ui = ui, server = server)
Edit dan Jalankan Kode