我刚开始使用R Shiny,并且试图了解如何使用用户指定的颜色生成ggplot图,但使用相同的输入数据帧以静态大小生成该图。用下面的diamonds
数据重新表示-散点图显示出所有一种颜色,我希望其中的颜色可以由输入变量的级别进行着色。我已经基于“克拉”创建了一个大小为bin的虚拟变量。基本上,颜色是静态的(一种颜色),在Shiny应用程序中没有反应性-我敢肯定,我不会在Shiny中遵循一些非常简单的方法,任何指针都将受到赞赏。
library(shiny)
library(ggplot2)
diamonds$carat_bins <- cut(diamonds$carat,4)
# Define UI for application that draws a histogram
ui <- fluidPage(
titlePanel("Diamonds Data"),
sidebarLayout(
sidebarPanel(
selectInput(inputId = "col",
label = "Color Variable:",
choices = c("color","clarity"),
selected = "color")
),
# Show map
mainPanel(
plotOutput(outputId = "scatterplot")
)
)
)
server <- function(input, output) {
output$scatterplot <- renderPlot({
ggplot() +
geom_point(data=diamonds, aes(x, y, size = carat_bins, col=input$col))
})
}
shinyApp(ui = ui, server = server)