блестящий - построение диаграммы аккордов networkD3 с указанием стека / нескольких графиков для реактивного выражения - PullRequest
0 голосов
/ 21 апреля 2020

Я разрабатываю приложение, в котором есть диаграмма аккордов, основанная на реактивных данных, которые я фильтрую через некоторые выпадающие списки и т. Д. 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)

Любая помощь будет оценена - спасибо!

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