2016-07-12 15 views
1

次のコードは機能しません。私は何を変えなければならないのですか?scale_x_log10(FALSE/TRUE)を光沢のあるチェックボックスで設定するには?

具体的には: チェックボックスをオンにすると、X軸の対数スケールに変更します。

ui <- shinyUI(fluidPage(
... 
checkboxInput("logarithmicX", "show x-axis in log10", FALSE), 
checkboxInput("logarithmicY", "show y-axis in log10", FALSE), 
... 
)) 

server <- shinyServer(function(input, output) { 

output$distPlot <- renderPlot({ 
... 
xlog <- reactive({ 
switch(input$logarithmicX, 
     TRUE == TRUE, 
     FALSE == FALSE) 
}) 
ylog <- reactive({ 
switch(input$logarithmicY, 
     TRUE == TRUE, 
     FALSE == FALSE) 
}) 

ggplot(datasetInput(), aes(size)) + geom_histogram(bins = biins) + theme_bw() + scale_x_log10("logarithmicX") +scale_y_log10("logarithmicY") 
}) 

答えて

3

このような何か:

output$distPlot <- renderPlot({ 
    mygg <- ggplot(datasetInput(), aes(size)) + 
    geom_histogram(bins = biins) + 
    theme_bw() 

    if(input$logarithmicX) 
    mygg <- mygg + scale_x_log10() 

    if(input$logarithmicY) 
    mygg <- mygg + scale_y_log10() 

    return(mygg) 
}) 

編集:作業例。

library(shiny) 
library(ggplot2) 

runApp(
    shinyApp(
    ui = { 
     pageWithSidebar(
     headerPanel('http://stackoverflow.com/questions/38327254'), 
     sidebarPanel(
      checkboxInput("logarithmicX", "show x-axis in log10", FALSE), 
      checkboxInput("logarithmicY", "show y-axis in log10", FALSE) 
     ), 
     mainPanel(
      plotOutput('distPlot') 
     ) 
    ) 
    }, 
    server = function(input, output) { 
     output$distPlot <- renderPlot({ 
     mygg <- ggplot(mtcars, aes(mpg)) + 
      geom_histogram() 

     if(input$logarithmicX) 
      mygg <- mygg + scale_x_log10() 

     if(input$logarithmicY) 
      mygg <- mygg + scale_y_log10() 

     return(mygg) 
     }) 

    } 
) 
) 
関連する問題