2015-07-31 2 views
1

Я работаю над проектом, который должен составить последовательность солнечных лучей. Я нашел образец на D3.js, но я не знаю, как включить его в блестящую серверную функцию. Кто-нибудь знает как это делать?D3 Sequence Sunburst Chart on Shiny

Это ссылка для этой Санберст диаграммы на D3: http://bl.ocks.org/kerryrodden/7090426

+0

https://github.com/timelyportfolio/sunburstR/blob/master/inst/examples/example_shiny.R – timelyportfolio

ответ

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.

+0

Большое спасибо, rawr. Поскольку у меня нет знаний о js, html и css, я знаю только R, ваш ответ помогает мне понять, как эти три части создают веб-страницу. Я думаю, мне нужно сначала изучить эти вещи. Поскольку у моего текущего приложения, созданного блестящим, есть другие вещи, если я просто использую функцию include для вызова css и js-файла, тогда эти два файла будут применены ко всему приложению (другие страницы). Во всяком случае, еще раз спасибо за ваше время. Я ценю это. –

Смежные вопросы