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
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)