使用D3 Javascript和JSON,我需要创建一些非常类似于:
的东西http://bl.ocks.org/mbostock/4063550
JSON文件(从网站复制)看起来像:
{
"name": "flare",
"children": [
{
"name": "analytics",
"children": [
{
"name": "cluster",
"children": [
{"name": "AgglomerativeCluster", "size": 3938},
{"name": "CommunityStructure", "size": 3812},
{"name": "HierarchicalCluster", "size": 6714},
{"name": "MergeEdge", "size": 743}
]
},
现在代替上面代码中的“大小”,我有“得分”(即“得分”:3)。
我想要实现的是类似于网站的图表,但不同之处在于分数超过某个阈值(例如> 5),我希望小蓝色圆圈具有某种颜色(即红色)。
我知道这需要在index.html文件中更新,但我只是不知道如何解决这个问题。任何指针都将不胜感激!
谢谢!
答案 0 :(得分:0)
您需要做的就是稍微修改附加circle
的代码。您需要更改代码段
node.append("circle")
.attr("r", 4.5);
到
node.append("circle")
.style("stroke", function(d) { return d.score > 5 ? "red" : "steelblue"; })
.attr("r", 4.5);
您显然可以将此类内容应用于例如填充颜色的方式相同。如果您有更多不同的颜色和阈值,则可能值得使用scale而不是条件语句进行调查。
答案 1 :(得分:0)
像这样更改你的JSON:
{
"name": "flare",
"children": [
{
"name": "analytics",
"children": [
{
"name": "cluster",
"children": [
{"name": "AgglomerativeCluster", "score": 3938},
{"name": "CommunityStructure", "score": 3812},
{"name": "HierarchicalCluster", "score": 6714},
{"name": "MergeEdge", "score": 743}
]
},
现在使用函数检查数据中的条件并设置圆的样式:
node.append("circle")
.attr("r", 4.5)
.style("fill",function(d){
return ((d.score > 5)?"red":"blue");
});