【发布时间】:2021-09-24 17:01:03
【问题描述】:
我在将 sankeyNetwork 中的矩形更改为 R 的 networkd3 包中的圆圈时遇到问题。到目前为止,我的 onrender js 代码只删除了矩形,不确定为什么没有添加圆圈。
这是我的代码:
htmlwidgets::onRender(
p,
'
function(el,x){
//node variable
var node=d3.select(el).select("svg").selectAll(".node");
//remove node
node.selectAll("rect")
.remove();
// add circles instead
node
.append("circle")
.attr("cx",sankey.nodeWidth()/2)
.attr("cy",function(d){
return d.dy/2;
})
.attr("r",function(d){
return Math.sqrt(d.dy);})
.style("fill", function(d) {
return d.color = color_node(d); })
.style("stroke", function(d) { return d3.rgb(d.color).darker(2); })
.style("opacity", 0.9)
.style("cursor", "move")
.append("title")
.append("foreignObject")
.append("xhtml:body")
.html(function(d) { return "<pre>" + d.name + "<br>" + format(d.value) +
" " + options.units + "</pre>"; })
;
}
'
)
【问题讨论】:
标签: javascript r d3.js htmlwidgets networkd3