2016-04-01 30 views
-2

Ich versuche, Shiny App zu schaffen, die die Lage ist, interaktive Handlung Titel (abhängig von dem gewählten Wert für x-Achse) zum AnzeigenR Shiny Interactive Grundstück Titel für ggplot

Sehr einfaches Beispiel:

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() 
    }) 
    } 
) 

ich habe diesen Code versucht:

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

Es war nicht funktioniert, hat Plot nicht angezeigt worden ist, gibt mir einen Fehler:

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

[WICHTIG]

mit ggtitle(input$yaxis) gibt mir einen interaktiven Titel, jedoch muss ich einen Satz aufzubauen (wie: Linie Grundstück von x vsinput$yaxis), in dem das reaktive Argument (input$yaxis) ist ein Teil davon!

Danke für jede Hilfe!

Prost

+2

Verwenden Sie 'ggtitle (einfügen (" Liniendiagramm von x vs ", Eingabe $ yaxis))'? – Axeman

Antwort

4

Wechsel:

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

Um

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

Wie der Fehler schon sagt, Sie zu viele Argumente für die Funktion ggtitle geleitet wird paste ein einzelnes Zeichen aus erstellen Ihre zwei Eingänge, mit einem Zwischenraum dazwischen. Sie können den Abstand zwischen den beiden mit sep = variieren.