ÎncepețiÎncepe gratuit

Adaugă culori în grafic: selector de culoare

Pachetul colourpicker oferă un selector de culoare, disponibil prin funcția colourInput(). Deși selectoarele de culoare nu fac parte din pachetul shiny, funcționează la fel ca orice alt tip de input.

Un selector de culoare poate primi mai multe argumente pe care le poți explora, însă vom folosi doar argumentele de bază: inputId, label și value. Argumentul value acceptă o culoare care va fi folosită ca valoare inițială. Culorile pot fi specificate în mai multe formate, dar cel mai simplu este să folosești direct denumiri de culori în engleză, cum ar fi "red" sau "yellow".

Acest exercițiu face parte din cursul

Studii de caz: Construirea aplicațiilor web cu Shiny în R

Vezi cursul

Instrucțiuni pentru exercițiu

Codul pentru aplicația Shiny din exercițiul anterior este deja disponibil. Sarcina ta este să înlocuiești butoanele radio folosite pentru selectarea culorii cu un selector de culoare. Mai exact:

  • Încarcă pachetul colourpicker.
  • Găsește funcția UI care creează butoanele radio pentru selectarea culorii și înlocuiește-o cu un selector de culoare (linia 12).
  • Selectorul de culoare trebuie să aibă ID-ul "color", eticheta "Point color" și culoarea implicită "blue".

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul