闪亮:我正在尝试在闪亮的应用程序中绘制散点图,但它仅显示一个点

时间:2018-08-03 06:42:01

标签: r ggplot2 shiny

我尝试使用ggplot(在闪亮的应用程序外部)分别绘制图形,并且绘制得很好,所以我知道问题不在于我的ggplot代码,而是闪亮的应用程序中的输入如何输入到{{1 }} 部分。输入是轴。

代码:

renderplot({})

1 个答案:

答案 0 :(得分:2)

解决方案

您正在将字符串传递到aes,这是行不通的。你应该尝试

server <- function(input, output) {
  output$scatterplot <- renderPlot({
    req(input$xaxis)
    req(input$yaxis)
    gggplot(data1, aes_string(x = paste0("`", input$xaxis, "`"), 
                              y = paste0("`", input$yaxis, "`"))) + geom_point()
  })
} 

说明

aes需要像ggplot(mtcars, aes(am, vs)) + geom_point()中那样的裸列名称。请注意,对于 am vs (即,我们正在传递变量名和 not 字符串),我们不使用配额标记"。另一方面,input$xaxis返回一个 string 。因此,您必须使用aes_string,该字符串用于处理字符串而不是列名。

更新

添加了反击来处理非标准名称。