Есть ли способ использовать пользовательское преобразование оси при использовании brushedPoints в блестящем? - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь использовать пользовательскиеordin_trans и BrushedPoints в блестящем приложении, но некоторые, как это не работает.Я могу почистить точки при преобразовании log2.Но когда я пытаюсь использовать пользовательское преобразование координат, чистка не работает.Я вставил код ниже:

library(ggplot2)

shinyApp(
  ui = fluidPage(
    selectInput(inputId = 'axis_trans',
                label = 'Transform Axis: ',
                choices = list("None", "log2", "asinh")
    ),
    plotOutput("bPlot", brush=brushOpts("bBrush")),
    fluidRow( column(5, "Brushed: ", verbatimTextOutput( "brushed" )))

  ),

  server = function(input, output, session) {
    asinhco_trans <- function(cofactor=10) {
      require(scales)
      trans_new("asinhco", 
                transform=function(x) {
                  if (cofactor !=0) {
                    xt <- asinh(x/cofactor)
                  } else {
                    xt <- asinh(x)
                  }
                  return(xt)
                },
                inverse= function(xt) {
                  if (cofactor != 0) {
                    x <- cofactor*sinh(xt)
                  } else {
                    x <- sinh(xt)
                  }
                  return(x)
                }
      )
    }
    output$bPlot <- renderPlot({
    p <- ggplot( mtcars, aes_string( x="mpg", y="wt") ) + geom_point() 
    if (input$axis_trans == "asinh") {
      p <- p + coord_trans(x=asinhco_trans(), y = asinhco_trans())
    }
    if (input$axis_trans == "log2") {
      p <- p + coord_trans(x="log2", y="log2")
    }
    return(p)
    })
    output$brushed <- renderText({
      nrow(brushedPoints(mtcars,input$bBrush))
    })
  }

)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...