अपने प्लॉट में रंग जोड़ें: color input
colourpicker पैकेज एक color input देता है, जो colourInput() फंक्शन के ज़रिए उपलब्ध है. भले ही color inputs shiny पैकेज का हिस्सा नहीं हैं, उनका व्यवहार किसी भी अन्य input जैसा ही होता है.
एक color input में कई अलग-अलग आर्ग्युमेंट हो सकते हैं जिन्हें आप एक्सप्लोर कर सकते हैं, लेकिन हम केवल बेसिक आर्ग्युमेंट इस्तेमाल करेंगे: inputId, label, और value. value आर्ग्युमेंट आरंभिक मान के रूप में इस्तेमाल होने वाला रंग स्वीकार करता है. रंग कई फॉर्मेट्स में बताए जा सकते हैं, लेकिन सबसे आसान तरीका है कि सीधे अंग्रेज़ी रंगों के नाम जैसे "red" या "yellow" का उपयोग करें.
यह अभ्यास पाठ्यक्रम का हिस्सा है
केस स्टडीज़: R में Shiny के साथ वेब एप्लिकेशन बनाना
अभ्यास निर्देश
पिछले अभ्यास वाली Shiny ऐप का कोड दिया गया है. आपका काम है रंग चुनने के लिए इस्तेमाल हो रहे radio buttons को एक color input से बदलना. विशेष रूप से:
colourpickerपैकेज लोड करें.- UI में वह फंक्शन खोजें जो रंग चुनने के लिए radio buttons बनाता है, और उसे color input से बदलें (पंक्ति 12).
- color input का ID "color" होना चाहिए, लेबल "Point color" हो, और डिफ़ॉल्ट रंग "blue" हो.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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)