我尝试使用ggplot(在闪亮的应用程序外部)分别绘制图形,并且绘制得很好,所以我知道问题不在于我的ggplot代码,而是闪亮的应用程序中的输入如何输入到{{1 }} 部分。输入是轴。
代码:
renderplot({})
答案 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
,该字符串用于处理字符串而不是列名。
更新
添加了反击来处理非标准名称。