Grafiğine renk ekle: renk girişi
colourpicker paketi, colourInput() fonksiyonu aracılığıyla kullanılabilen bir renk girişi sağlar. Renk girişleri shiny paketinin parçası olmasa da, diğer tüm girişlerle aynı şekilde davranır.
Bir renk girişi, keşfedebileceğin birçok farklı argümana sahip olabilir, ancak biz sadece temel argümanları kullanacağız: inputId, label ve value. value argümanı, başlangıç değeri olarak kullanılacak bir rengi kabul eder. Renkler birkaç farklı formatta belirtilebilir, ancak en kolayı "red" veya "yellow" gibi İngilizce renk adlarını kullanmaktır.
Bu egzersiz
Vaka Çalışmaları: R ile Shiny Kullanarak Web Uygulamaları Geliştirme
kursunun bir parçasıdırEgzersiz talimatları
Bir önceki egzersizdeki Shiny uygulamasının kodu verildi. Görevin, rengi seçmek için kullanılan radyo düğmelerini bir renk girişiyle değiştirmek. Özellikle:
colourpickerpaketini yükle.- Kullanıcı arayüzünde rengi seçmek için radyo düğmelerini oluşturan UI fonksiyonunu bul ve bunu bir renk girişiyle değiştir (satır 12).
- Renk girişinin kimliği "color", etiketi "Point color" ve varsayılan rengi "blue" olmalı.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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)