我正在尝试将y轴标题调整为ggplot
。我选择了selectizeInput
小部件,因此用户可以选择多个列进行绘图。我希望y轴的标题能够动态地改变并显示选择的列名。
使用这个简单的代码:
library(shiny)
library(DT)
library(ggplot2)
library(reshape2)
x <- as.numeric(1:1000000)
y <- as.numeric(1:1000000)
z <- as.numeric(1:1000000)
data <- data.frame(x,y, z)
shinyApp(
ui = fluidPage(selectizeInput(inputId = "yaxis",
label = "Y-axis",
choices = list("x","y","z"),
selected = c("x"), multiple=TRUE),
dataTableOutput('tableId'),
plotOutput('plot1')),
server = function(input, output) {
output$tableId = renderDataTable({
datatable(data, options = list(pageLength = 10, lengthMenu=c(10,20,30)))
})
output$plot1 = renderPlot({
filtered_data <- data[input$tableId_rows_all,]
widedata <- subset(filtered_data, select=c("x", input$yaxis))
longdata <- melt(widedata, id.vars="x", variable.name="Variables", value.name="Value_y")
ggplot(data=longdata, aes_string(x="x",y="Value_y",group="Variables")) + geom_line() +ylab(paste(input$yaxis))
})
}
)
它只显示第一个选择......
如果我改为:
+ylab(paste(input$yaxis[1],input$yaxis[2]))
它只显示两个选项,但如果只选择了一个选项,那么在轴标题上我们将看到 NA 代替第二个选项..
我希望它是动态的,因此用户可以选择一个或多个选项,yaxis的标题将会调整..
感谢您的帮助!
答案 0 :(得分:1)
如果你只需要它,那就是dunamicaly改变ylab
尝试+ylab(paste(input$yaxis,collapse = " ") )