Вывод Shiny Gvis открывается в браузере, а не в приложении

Я пытаюсь заставить мою shinydashboard построить диаграмму Санки в блоке, но когда я ее запускаю, она открывается на другой вкладке в моем браузере. Можно ли с помощью htmlOutput открыть в окне приложения график Санки? Я попытался изменить его на DataTable, и он отлично работает, но с sankey renderGvis и htmlOutput он не работает.

Вот фрагменты моего кода...

UI

tabItem("PatronTransactionFlow",
        box(title = "Controls", 
            width = 12,
            status = "success", 
            solidHeader = TRUE, 
            uiOutput("PurchaseColumnSankeyChoice"),
            uiOutput("SankeyPurchaseFilterNum")),
        box(title = paste0(eventname, " Patron Transaction Flow"), 
            width = 12,
            status = "success", 
            solidHeader = TRUE,
            htmlOutput("SankeyPurchasePlot")
            )
        )

сервер

 SankeyPurchaseData <- reactive({
sankey <- OverviewPurchaseData %>%
  select(Time.y, Tag, Point) %>%
  group_by(Time.y, Tag) %>%
  arrange(Time.y) %>%
  unique() %>%
  group_by(Tag) %>%
  mutate(n.order = paste('Transaction', c(1:n()), sep='')) %>%
  dcast(Tag ~ n.order, value.var='Point', fun.aggregate = NULL)
sankey
  })

  output$PurchaseColumnSankeyChoice <- renderUI({
sankey <- SankeyPurchaseData()
colchoice <- mixedsort(colnames(sankey)[2:ncol(sankey)])
selectInput("PurchaseColumnSankeyChoice", "Choose Transactions to View", 
            choices = mixedsort(colnames(sankey)[2:ncol(sankey)]),
            selected = mixedsort(colnames(sankey)[2:ncol(sankey)])[1:3],
            selectize = TRUE,
            multiple = TRUE)
  })

  SankeyPurchasePlotData <- reactive({
sankey <- SankeyPurchaseData()
sankeyplot <- sankey %>%
  select_(.dots = input$PurchaseColumnSankeyChoice)
orders.plot <- data.frame()
for (i in 2:ncol(sankeyplot)) {
  ord.cache <- sankeyplot %>%
    group_by(sankeyplot[ , i-1], sankeyplot[ , i]) %>%
    na.omit()%>%
    summarise(n=n())
  colnames(ord.cache)[1:2] <- c('from', 'to')
  # adding tags to carts
  ord.cache$from <- paste(ord.cache$from, '(', i-1, ')', sep='')
  ord.cache$to <- paste(ord.cache$to, '(', i, ')', sep='')
  orders.plot <- rbind(orders.plot, ord.cache)
}
orders.plot
  })

  output$SankeyPurchaseFilterNum <- renderUI({
data <- SankeyPurchasePlotData()
max1 <- max(data$n)
sliderInput("SankeyPurchaseFilterNum", "Choose Sequence Number to filter by:",
            min = 1, max = max1, value = round(max1*0.7, digits = 0))
  })

  output$SankeyPurchasePlot <- renderGvis({
orders.plot <- SankeyPurchasePlotData()
orders.plot2 <- orders.plot[which(orders.plot$n >= as.numeric(input$SankeyPurchaseFilterNum)),]

plot <- plot(gvisSankey(orders.plot2, from='from', to='to', weight='n'))


plot
  })

0 ответов

Другие вопросы по тегам