gpt4 book ai didi

R - 如何在 Shiny 中使用 selectInput 来更改 ggplot 渲染图中的 x 和填充变量?

转载 作者:行者123 更新时间:2023-12-03 23:16:43 25 4
gpt4 key购买 nike

我正在尝试制作一个具有交互式绘图的交互式 Shiny 仪表板,您可以在其中更改绘图的值。我放入 renderPlot 中的代码块正常工作,所以我不明白为什么当我使用 selectInput 更改 X 和 Fill 变量时,y 轴上没有显示计数。

 inputPanel(
selectInput('x', 'X', names(data)),
selectInput('y', 'Y', names(data))
)

renderPlot({
ggplot(data, aes(x = input$x)) +
geom_bar(aes(fill = input$y), position = position_stack(reverse = TRUE)) +
coord_flip() +
theme(legend.position = "top")
})

最佳答案

原因是 input$xinput$ycharacter类(class)。所以,而不是 aes , 使用 aes_string

renderPlot({
ggplot(data, aes_string(x = input$x)) +
geom_bar(aes_string(fill = input$y), position = position_stack(reverse = TRUE)) +
coord_flip() +
theme(legend.position = "top")
})
data(mpg) 的可重现示例
library(shiny)
library(ggplot2)


data(mpg)

ui <- fluidPage(
inputPanel(
selectInput('x', 'X', choices = c("manufacturer", "model", "year", "cyl", "class"),
selected = "class"),
selectInput('y', 'Y', choices = c( "trans", "fl", "drv"),
selected = "drv")
),

mainPanel(plotOutput("outplot"))

)

server <- function(input, output) {

output$outplot <- renderPlot({
ggplot(mpg, aes_string(x = input$x)) +
geom_bar(aes_string(fill= input$y), position = position_stack(reverse = TRUE)) +
coord_flip() +
theme(legend.position = "top")
})

}

shinyApp(ui = ui, server = server)

-输出

enter image description here

关于R - 如何在 Shiny 中使用 selectInput 来更改 ggplot 渲染图中的 x 和填充变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49473915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com