关于闪亮的D3序列旭日形图

时间:2015-07-31 02:30:56

标签: r d3.js shiny

我正在开展一个需要制作序列旭日形图的项目。我在D3.js上找到了一个示例,但我不知道如何将它放入闪亮的服务器功能中。有谁知道怎么做?

这是D3上旭日爆炸图的链接:http://bl.ocks.org/kerryrodden/7090426

1 个答案:

答案 0 :(得分:1)

我应该放弃一个免责声明,我不知道如何使用闪亮的。

我有一个目录test,带

  • server.R
  • ui.R
  • www/
    • sequences.js
    • sequences.css
    • index.html
    • visit-sequences.csv

首先,我使用此函数制作带有数据的visit-sequences.csv文件

## function to create the csv file
make_csv <- function(x, file = '~/desktop/test/www/visit-sequences.csv') {
  dd <- data.frame(ftable(x))
  dd <- within(dd, {
    visit <- apply(dd[, -ncol(dd)], 1, function(x)
      paste0(c(x, 'end'), collapse = '-'))
    count <- dd$Freq
  })

  write.table(dd[dd$count > 0, c('visit','count')], file = file, sep = ',',
              quote = FALSE, row.names = FALSE, col.names = FALSE)
}

set.seed(1)
dd <- sample(c('home','product','search','account','other'), 500,
             replace = TRUE, prob = c(.5,.3,.1,.05,.05))
dd <- as.data.frame(matrix(dd, ncol = 5))
make_csv(dd)

请注意,您可以看到图表已经没有闪亮

browseURL('~/desktop/test/www/index.html')

要在闪亮的应用中使用,

server.R

## server.R
shinyServer(function(input, output) {
  ## nothing here
})

ui.R

## ui.R
shinyUI(pageWithSidebar(
  headerPanel(HTML('A sunburst chart in d3')),

  sidebarPanel(
    checkboxInput(
      inputId = 'dataSource',
      label = 'Select file.',
      value = FALSE
    ),

    conditionalPanel(
      condition = 'input.dataSource == false',
      textInput(inputId='url', label='File URL:', value='./visit-sequences.csv')
    ),

    conditionalPanel(
      condition = 'input.dataSource == true',
      fileInput(inputId = 'file', label='Data to plot:')
    )
  ),

  mainPanel(
    includeScript('./www/sequences.js'),
    includeCSS('./www/sequences.css'),
    includeHTML('./www/index.html')
  )
))

最后,运行

library('shiny')
runApp('~/desktop/test')

我得到了这个

enter image description here

但就像我说的那样,我真的不知道自己在做什么。要更改标签,颜色和其他内容,您需要编辑js,html和css文件。