首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >networkD3上使用HTMLWidget的文本阴影

networkD3上使用HTMLWidget的文本阴影
EN

Stack Overflow用户
提问于 2022-03-01 18:33:05
回答 1查看 49关注 0票数 0

我使用networkD3包在R中构建了一个Sankey图,并希望将文本阴影添加到节点标签中。实际上,我需要的是在某种程度上对文本进行概述,因为我的原始数据非常复杂,有些文本与连接节点的“线”混淆。这是我在StackOverflow上发现的方法,应该可以很好地工作,但是如果有人有其他的想法,我愿意接受新的方法。

我发现了一个与我的实现非常相似的问题:Bold text in R using networkD3 package

但当我尝试同样的方法时,什么都不会发生。

一般数据如下:

代码语言:javascript
复制
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,但没有用。因此,我修改了上述主题的代码,但是在生成的小部件中没有任何改变:

代码语言:javascript
复制
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")
  }
  '
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-01 19:20:49

要应用CSS样式,您需要使用.style()而不是.attr().

代码语言:javascript
复制
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")
  }
')

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71313102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档