Javascript 如何在图表中添加图例?

Javascript 如何在图表中添加图例?,javascript,d3.js,Javascript,D3.js,如何将图例添加到图表()?我试图按如下方式定义图例,但随后图表消失(请参阅) 以下是问题列表: 没有colorScaleDomain.quantiles()。它应该是colorScale.quantiles() 在没有z索引的SVG中,元素的顺序非常重要。所以,你的传奇 legend.enter().append("g") .attr("class", "legend"); …应位于图表的绘图代码之后。但由于第三个问题,这一步骤甚至可以被忽略: 您的图例在SVG之外。我纠正了这一点:

如何将图例添加到图表()?我试图按如下方式定义图例,但随后图表消失(请参阅)


以下是问题列表:

  • 没有
    colorScaleDomain.quantiles()
    。它应该是
    colorScale.quantiles()

  • 在没有z索引的SVG中,元素的顺序非常重要。所以,你的传奇

    legend.enter().append("g")
        .attr("class", "legend");
    
  • …应位于图表的绘图代码之后。但由于第三个问题,这一步骤甚至可以被忽略:

  • 您的图例在SVG之外。我纠正了这一点:

    var svg = d3.select("body").append("svg")
        .attr("width", diameter + 200)//adding some space in the SVG
    
  • 还有一些传奇代码中的神奇数字。相应地更改它们(在大多数情况下,幻数不是一种好的做法)


    这是您最新的小提琴:

    谢谢。如果我需要在图例中显示绝对数字,该怎么办?另外,
    colorScale
    已经定义为分位数:
    ar colorScale=d3.scale.quantile().domain(colorScaleDomain).range(colors)。我有点误解了为什么需要在
    .data([0].concat(colorScale.quantiles()),函数(d){return d;})中再次运行
    colorScale.quantiles()
    分位数()
    是刻度<代码>分位数()
    返回分位数。他们不一样。哦,我不知道。很抱歉无论如何,如果你能指出如何在图例中获得绝对数,我将不胜感激。只需定义你的数组。好的,我明白了。如果我设置
    var colorScaleDomain=[30010001800250030003500],然后我得到绝对数。谢谢然而,问题是,所有的颜色都是相同的,尽管比例似乎是正确的。请看这个:
    
    var svg = d3.select("body").append("svg")
        .attr("width", diameter + 200)//adding some space in the SVG