我使用networkD3包在R中构建了一个Sankey图,并希望将文本阴影添加到节点标签中。实际上,我需要的是在某种程度上对文本进行概述,因为我的原始数据非常复杂,有些文本与连接节点的“线”混淆。这是我在StackOverflow上发现的方法,应该可以很好地工作,但是如果有人有其他的想法,我愿意接受新的方法。
我发现了一个与我的实现非常相似的问题:Bold text in R using networkD3 package
但当我尝试同样的方法时,什么都不会发生。
一般数据如下:
library(networkD3)
URL <- "https://cdn.rawgit.com/christophergandrud/networkD3/master/JSONdata/energy.json"
Energy <- jsonlite::fromJSON(URL)
sn <- sankeyNetwork(Links = Energy$links, Nodes = Energy$nodes, Source = "source",
Target = "target", Value = "value", NodeID = "name",
fontSize = 14, nodeWidth = 20, height = 900, width = 700, units = "px")像这样,我自己尝试使用onRender函数的htmlwidgets,但没有用。因此,我修改了上述主题的代码,但是在生成的小部件中没有任何改变:
library(htmlwidgets)
onRender(sn,
'
function(el) {
d3.selectAll(".node text").attr("text-shadow", "1px 0 white, -1px 0 white, 0 1px white, 0-1px white")
}
'
)发布于 2022-03-01 19:20:49
要应用CSS样式,您需要使用.style()而不是.attr().
htmlwidgets::onRender(sn, jsCode = '
function(el) {
d3.selectAll(".node text").style("text-shadow", "1px 0 white, -1px 0 white, 0 1px white, 0 -1px white")
}
')

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