Я разрабатываю приложение, в котором есть диаграмма аккордов, основанная на реактивных данных, которые я фильтрую через некоторые выпадающие списки и т. Д. c. Когда мои данные меняются, моя новая диаграмма аккордов отображается поверх (т.е. вставляется поверх) моей старой. Попытался сократить приведенный ниже пример, используя пример файла справки таблицы аккордов (я умножаю некоторые данные на несколько случайных чисел при нажатии кнопки).
library(shiny)
library(shinydashboard)
library(shinyWidgets)
library(networkD3)
library(shinyjs)
# header ------------------------------------------------------------------
header = dashboardHeader(
title = "White Label"
)
# sidebar -----------------------------------------------------------------
sidebar <- dashboardSidebar(
sidebarMenu(
menuItem("Client View", tabName = "clientPage", icon = icon("dashboard")),
actionButton(inputId = "refresh",
label = "Refresh", icon = icon("fa fa-refresh"))
)
)
# body --------------------------------------------------------------------
body <- dashboardBody(
useShinyjs(),
tabItems(
tabItem(tabName = "clientPage",
chordNetworkOutput(outputId = "chord",width = 500, height = 500)
)
)
)
# ui ----------------------------------------------------------------------
ui = dashboardPage(
header,
sidebar,
body
)
# server ------------------------------------------------------------------
server <- function(input, output) {
rand = reactive({
input$refresh
runif(10)
})
output$chord = renderchordNetwork({
hairColourData <- matrix(c(11975, 1951, 8010, 1013,
5871, 10048, 16145, 990,
8916, 2060, 8090, 940,
2868, 6171, 8045, 6907)*rand(),
nrow = 4)
isolate(chordNetwork(Data = hairColourData,
width = 500,
height = 500,
colourScale = c("#000000",
"#FFDD89",
"#957244",
"#F26223"),
labels = c("red", "brown", "blond", "gray")))
})
}
# app ---------------------------------------------------------------------
shinyApp(ui, server)
Любая помощь будет оценена - спасибо!