D3partitionR имеет несколько фантастических визуализаций для иерархических и последовательных данных, однако у него есть серьезный недостаток в Shiny.
Функция D3partitionROutput (& renderD3partitionR) не обновляет отображаемый объект при обновлении выходного объекта.
Функции отлично работают при первом выполнении графика, однако отображаемые объекты не могут быть реактивно обновлены.
Кто-нибудь знает об исправлении или обходном пути, поскольку мне очень нравятся визуализации этого пакета?
library(shiny)
library(D3partitionR)
path_in=list(list("A","B","C","D"),list("A","B","F","G"),list("A","D"),list("A","B","END"))
value_in=c(15,29,21,34)
# Define UI for application that draws a histogram
ui <- fluidPage(
# Application title
titlePanel("Old Faithful Geyser Data"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
selectInput("type_in",
"Plot type:",
choices = c('circleTreeMap', 'partitionChart', 'treeMap')
)
),
# Show a plot of the generated distribution
mainPanel(
D3partitionROutput("part_out")
)
)
)
# Define server logic required to draw a histogram
server <- function(input, output) {
output$part_out <- renderD3partitionR({
type = input$type_in
D3partitionR(data=list(path=path_in,value=value_in)
, type = type)
})
}
# Run the application
shinyApp(ui = ui, server = server)
Обновление: я обнаружил аналогичную ошибку здесь в Rwordcloud, которая была решить путем изменения функции «рендеринга» в Rwordcloud.js. Я просмотрел renderValue в D3partitionR.js и функция не принимает ввод «экземпляр» (как это делается в Rwordcloud.js), поэтому кажется, что она не знает, когда удалять/обновлять renderValue. Я парень R (и у меня нет опыта работы с js), поэтому я не знаю, как следует изменить функцию renderValue в D3partitionR.js, однако я почти уверен, что это источник проблемы. Помогите!