我正在使用networkD3包制作一个Sankey图,我在下面包含了我的代码。我想添加一个标题,脚注,和标签的左边和右边的关系图。但我不知道如何做到这一点,因为networkD3没有内置的标记命令
library(dplyr)
library(networkD3)
library(htmlwidgets)
Comp_Noncomp<-c("A","B","C","A","B","C","A","B","C")
Category<-c("D","E","F","D","E","F","D","E","F")
Frequency<-c(1,2,3,4,5,6,7,8,9)
my.data.3<-data.frame(Comp_Noncomp,Category,Frequency)
nodes <- data.frame(name=c(as.character(my.data.3$Comp_Noncomp), as.character(my.data.3$Category)) %>% unique())
my.data.3$IDsource=match(my.data.3$Comp_Noncomp, nodes$name)-1
my.data.3$IDtarget=match(my.data.3$Category, nodes$name)-1
library(networkD3)
sankeyNetwork(Links = my.data.3, Nodes = nodes,
Source = "IDsource", Target = "IDtarget",
Value = "Frequency", NodeID = "name",
sinksRight=FALSE)发布于 2022-01-28 19:33:14
您可以使用库htmlwidgets和htmltools向此关系图添加内容。
例如,如果您想添加一个标题:
s <- sankeyNetwork(Links = my.data.3, Nodes = nodes,
Source = "IDsource", Target = "IDtarget",
Value = "Frequency", NodeID = "name",
sinksRight=FALSE)
s2 <- htmlwidgets::prependContent(s, htmltools::tags$h1("This is my Title"))

假设您想要添加样式和字幕。
s3 <- htmlwidgets::prependContent(s, htmltools::tags$h1("This is my Title",
style="text-align:center;"),
htmltools::tags$h2("This is my Subtitle",
style="color:#003b70; text-align:center;"))

你可以用它做很多事情,但你必须稍微探索一下,才能准确地找出你想要的东西和想要的地方。
根据您的评论更新
添加左、右注释的最简单方法可能是使用库manipulateWidget。
您将希望恢复到原来的Sankey关系图,因为它将删除任何预先添加或附加的内容。
我把文字垂直地放在左边。在右边,我让系统选择位置。通过这种方式,您可以看到对内容的不同方式。
s <- sankeyNetwork(Links = my.data.3, Nodes = nodes,
Source = "IDsource", Target = "IDtarget",
Value = "Frequency", NodeID = "name",
sinksRight=FALSE)
leftTx = tags$div(
style="max-width: 30vw; padding-bottom: 15px; height: 100%; display: flex; align-items: center; justify-content: center;",
tags$p("This text is on the left side"))
rightTx = tags$p("This text is on the right",
style="max-width:30vw")
cS <- combineWidgets(s,
title = tags$h1("This is my Title",
style="text-align:center;"),
leftCol = leftTx,
rightCol = rightTx,
nrow = 1)

https://stackoverflow.com/questions/70886801
复制相似问题