正如错误消息所示,您将重新使用 aes 不正确。该功能需要 列名 ,而不是变量引用。也就是说,替换
aes
aes(x = output$x, y = output$y)
通过
aes(x = x, y = y)
或者,您更希望能够从输入控制绘图,因此您需要使用
aes_string(x = input$x, y = input$y)
您的代码中还有相当多的迷路括号和大括号。删除那些。此外, mainPanel 是一个 的 功能 强> 你需要打电话。您的代码正在为其分配内容。
mainPanel
最后,你真的需要 情节 你的情节。完成所有这些操作后,相关代码如下所示:
ui <- fluidPage( titlePanel("Pig Breeds"), sidebarLayout( sidebarPanel(锟斤拷), mainPanel( plotOutput(outputId = "scatterplot") ) ) ) server <- function(input, output) { output$scatterplot <- renderPlot({ p = ggplot(data = read.csv("eu_pigs.csv")) + aes_string(x = input$x, y = input$y) + geom_point() plot(p) observeEvent(input$update, print(as.numeric(input$update))) }) }
如果 情节?对象是你在执行的最后一件事 renderPlot 功能,你可以省略 plot :
renderPlot
plot
output$scatterplot <- renderPlot({ ggplot(data = read.csv("eu_pigs.csv")) + aes_string(x = input$x, y = input$y) + geom_point() })