Как добавить заголовок к визуализации networkD3 при сохранении в виде веб-страницы? - PullRequest
0 голосов
/ 02 мая 2018

Я создал интерактивную визуализацию, используя следующий код:

library(networkD3)

nodes = data.frame("name" = c("node1", "node2","node3", "node4", "node5", "node6", "node7"))
links = as.data.frame(matrix(c(
0,1,7937,
0,2,6990,
0,3,2483,
1,4,2120,
2,4,666,
3,4,282,
1,5,4583,
2,5,5657,
3,5,731,
1,6,1234,
2,6,756,
3,6,1470), byrow = TRUE, ncol = 3))

names(links) = c("source", "target", "value")

sankey <- sankeyNetwork(Links = links, Nodes = nodes,
          Source = "source", Target = "target",
          Value = "value", NodeID = "name",
          fontSize= 12, nodeWidth = 15)'

Я впервые использую пакет networkD3 (или любой другой интерактивный пакет в этом отношении) и, поиграв в игру, обнаружил, что для сохранения интерактивности он должен быть опубликован в виде веб-страницы (или есть другой способ ??), но просматривая документацию по пакету, я не вижу способа добавить заголовок или подпись / комментарии. Я хочу поделиться этим раундом работы, поэтому в идеале нужно объяснить, что каждый уровень означает на опубликованной веб-странице

Ответы [ 2 ]

0 голосов
/ 03 августа 2018

Отвечая на комментарий: «Я закончил тем, что использовал это, чтобы добавить заголовок, но он продолжает толкать мой визир и обрезать нижнюю часть. Это остается отключенным даже при сохранении в качестве веб-страницы. Есть ли в любом случае, я могу остановить это от происходит? "

Я попробовал предложенный ответ о добавлении sankey $ sizingPolicy $ viewer $ fill <- FALSE, однако это сделало мой sankey меньше, чем я хотел. Я обнаружил, что вы можете отрегулировать ширину и высоту Sankey до добавления виджета HTML, добавив width = (желаемую ширину) и height = (желаемую высоту), и это создает пространство для добавления в заголовок и комментарий, как предложено CJ Йетман. </p>

library(networkD3)
library(htmlwidgets)
library(htmltools)

nodes = data.frame("name" = c("node1", "node2","node3", "node4", "node5", "node6", "node7"))
links = as.data.frame(matrix(c(
  0,1,7937,
  0,2,6990,
  0,3,2483,
  1,4,2120,
  2,4,666,
  3,4,282,
  1,5,4583,
  2,5,5657,
  3,5,731,
  1,6,1234,
  2,6,756,
  3,6,1470), byrow = TRUE, ncol = 3))

names(links) = c("source", "target", "value")

sankey <- sankeyNetwork(Links = links, Nodes = nodes,
                        Source = "source", Target = "target",
                        Value = "value", NodeID = "name",
                        fontSize= 12, nodeWidth = 15,
                        width= 900, height=600)


sankey <- htmlwidgets::prependContent(sankey, htmltools::tags$h1("Title"))
sankey <- htmlwidgets::appendContent(sankey, htmltools::tags$p("Caption"))

sankey
0 голосов
/ 02 мая 2018

В networkD3 нет встроенной функции для добавления заголовков или подписей, но вы можете использовать функции в пакете htmlwidgets для добавления или добавления содержимого в htmlwidget. Вариантов много, но например ....

library(htmlwidgets)
library(htmltools)

sankey <- htmlwidgets::prependContent(sankey, htmltools::tags$h1("Title"))
sankey <- htmlwidgets::appendContent(sankey, htmltools::tags$p("Caption"))
...