【问题标题】:Required Help in adding data labels to histogram - d3向直方图添加数据标签所需的帮助 - d3
【发布时间】:2014-05-13 20:07:42
【问题描述】:

这是Fiddle

我创建了一个响应式histogram

我想给它添加数据标签。

我尝试使用此代码。但这对我没有帮助。

svg.selectAll("文本") .data(直方图) 。进入() .append("文本") .attr("x", function(d) { return x(d.x); }) .attr("y", function(d) { return y(d.y); }) .text(函数(d){返回d;})

请帮我解决这个问题。

我想我做得很好。

但我不知道为什么还没有创建文本元素。

提前致谢!!

【问题讨论】:

    标签: javascript d3.js


    【解决方案1】:

    您的代码存在 3 个小问题:

    • .selectAll("text") 选择为轴添加的text 元素,将给定数据与它们匹配,您的.enter() 选择为空。因此没有添加新文本。您可以通过例如解决此问题为文本标签分配一个可区分的类别。
    • y 位置应为height - y(d.y)
    • 您可能不想将整个对象显示为标签,而只是 d.y

    以下代码解决了这些问题。

    svg.selectAll("text.label")
            .data(histogram)
            .enter()
            .append("text")
            .attr("class", "label")
            .attr("x", function(d) { return x(d.x); })
            .attr("y", function(d) { return height - y(d.y); })
            .text(function(d) { return d.y; })
    

    完整的演示here

    【讨论】:

    • 感谢您的简报。我还想添加对应于某个值的行。假设认为是 240。所以如果我给定 240。它正在移动 240 像素。如果我给y(240) 它给了我一些价值。如果我给x(240)。它说我 x 没有定义。请帮帮我?
    • 你必须在这里给我更多的背景信息。我可能会更好地将其作为一个单独的问题发布。
    • 这是link
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多