我找到了这个用于绘制有向图的优秀示例和示例代码 - http://bl.ocks.org/cjrd/6863459 但是,graph-creator.css文件为所有节点定义了一种全局样式。如果我想为某些"特殊"分配不同的样式怎么办?来自所有其他节点的节点(我希望它们是不同的形状,也有不同的颜色,如果可能的话,还有不同的透明度)。如何修改此代码以添加这些特定于节点的效果?
答案 0 :(得分:1)
您可以根据不同的情况选择append
种不同的形状:
// append new elements in <g> element in scenario X
// you can pass different parameters for specific styling here
// for example, user select "red" color rect in setting filters
newGs.append("circle")
.attr("r", String(consts.nodeRadius));
// alternatively append rect
newGs.append("rect")
.attr({
"x": // mouse event info as circles in the demo
"y": // mouse event info as circles in the demo
"width": String(consts.rectWidth),
"height": String(consts.rectHeight)
})
.attr("class", "myRectStyle") // set styles in css
.attr("fill", "red")
.attr("rx",5)
.attr("ry",5)
答案 1 :(得分:1)
为了实现目标,首先必须了解CSS
概念。首先,您可以在3个地方为CSS
标记添加HTML/SVG
。
外部CSS
文件,
带有HTML
块的<style>
文件相同
标签内的内联CSS
例如。 <circle> <li> <line>
等。
在您的情况下,如果您想为不同的节点提供不同的样式,那么您可以为它们提供特定的css class/id
选择器,并在我之前提到的3种方法中的任何一种中使用样式。
让我们说你想让某些圈子透明,然后给圈子一个班级&#34; trCircles
&#34;并在外部CSS文件中指定CSS并将文件与<link>
d3.select('g')
.append('circle')
.attr('class', 'trCircle')
...
你可以在CSS文件中找到。
.trCircle{
fill : transparent;
}
Orr如果你想在d3级别应用它们。您可以在创建圆时指定它。
d3.select('g')
.append('circle')
.attr('cx' , '100')
.....
.style('fill','transparent')
;
希望你能得到这个想法。