Как добавить заголовок к визуализации networkD3 при сохранении в виде веб-страницы?
Я создал интерактивную визуализацию, используя следующий код:
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 ответа
Там нет функции, встроенной в networkD3
добавить заголовки или подписи, но вы можете использовать функции в htmlwidgets
пакет для добавления или добавления содержимого в htmlwidget
, Есть множество вариантов, но например....
library(htmlwidgets)
library(htmltools)
sankey <- htmlwidgets::prependContent(sankey, htmltools::tags$h1("Title"))
sankey <- htmlwidgets::appendContent(sankey, htmltools::tags$p("Caption"))
Отвечая на комментарий: "В итоге я использовал это, чтобы добавить заголовок, но он продолжает толкать мой визир и обрезать нижнюю часть. Это отключается даже при сохранении в качестве веб-страницы. Могу ли я в любом случае остановить это?"
Я попробовал предложенный ответ о добавлении sankey$sizingPolicy$viewer$fill <- FALSE, однако это сделало мой sankey меньше, чем я хотел. Я обнаружил, что вы можете отрегулировать ширину и высоту Sankey до добавления виджета HTML, добавив width = (желаемую ширину) и height = (желаемую высоту), и это создает пространство для добавления в заголовок и комментарий, как предложено CJ Йетман.
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