2016-04-01 3 views
-2

Я пытаюсь создать глянцевое приложение, которое может отображать интерактивное название участка (в зависимости от значения выбраного для оси х)R Shiny Interactive название участка для ggplot

Очень простой пример:

library(shiny) 
library(DT) 
library(ggplot2) 

x <- as.numeric(1:1000000) 
y <- as.numeric(1:1000000) 
z <- as.numeric(1:1000000) 
data <- data.frame(x,y, z) 

shinyApp(
    ui = fluidPage(selectInput(inputId = "yaxis", 
          label = "Y-axis", 
          choices = list("x","y","z"), 
          selected = c("x")), 
    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, ] 
     ggplot(data=filtered_data, aes_string(x="x",y=input$yaxis)) + geom_line() 
    }) 
    } 
) 

Я попробовал этот код:

ggtitle("Line plot of x vs",input$yaxis) 

Он не работал, не отображается график, давая мне ошибку:

Warning: Error in ggtitle: unused argument (input$yaxis) 

[ВАЖНО]

с помощью ggtitle(input$yaxis) дает мне интерактивный титул, однако мне нужно создать предложение (например: линия участок х противinput$yaxis), в котором реактивная аргумент (input$yaxis) является его частью!

Спасибо за помощь!

Приветствия

+2

Использовать 'ggtitle (вставить (« Строчный график x vs », input $ yaxis))'? – Axeman

ответ

4

Изменение:

ggtitle("Line plot of x vs",input$yaxis) 

Для

ggtitle(paste("Line plot of x vs",input$yaxis)) 

Как ошибка предполагает, что у вас слишком много аргументов, переданных функции ggtitle, paste создаст один символ из ваши два входа, промежуток между ними. Вы можете варьировать расстояние между ними с помощью sep =.

Смежные вопросы