【问题标题】:D3 javascript color from JSON attributeJSON属性中的D3 javascript颜色
【发布时间】:2013-08-27 09:45:30
【问题描述】:

使用 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}
     ]
    },

现在我用“score”代替了上面代码中的“size”(即“score”:3)。

我想要实现的是类似于网站的图表,但不同的是分数超过了某个阈值(例如> 5),我希望小蓝圈是某种颜色(即红色)。

我知道这需要在 index.html 文件中更新,但我只是不知道如何解决这个问题。任何指针将不胜感激!

谢谢!

【问题讨论】:

    标签: javascript jquery json d3.js


    【解决方案1】:

    您需要做的只是稍微修改附加circles 的代码。你需要改变sn-p

    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 而不是条件语句进行调查。

    【讨论】:

    • 非常感谢拉斯。一个问题是,我实际上不希望在图表末尾有一个带有颜色的额外节点。是否可以根据分数为上一个节点着色?
    • 这不会添加额外的节点,它会用相应的分数为节点着色。你的意思是一个节点的分数决定了后面节点的颜色吗?
    【解决方案2】:

    像这样改变你的 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");
          });
    

    【讨论】:

    • 非常感谢。一个问题是,我实际上不希望在图表末尾有一个带有颜色的额外节点。是否可以根据分数为上一个节点着色?
    猜你喜欢
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多