javascript - 在条形图中的 <rect> 两端添加标签

标签 javascript d3.js

我正在使用 D3 将一些数据呈现为水平条形图。值通常在 8 个不同的尺度上介于 -10 和 +10 之间。我已经按照我想要的方式渲染了条形图,但我无法弄清楚如何为轴的每个极值添加标签。

到目前为止我已经:

bars with no lables

但我想实现类似的目标:

enter image description here

换句话说,每个尺度的每个极端都有一个标签。 我发现了很多向条形图本身添加数据标签的示例(例如值),但我想知道如何强制在容器的极端处呈现字符串数组。

目前,我正在渲染数组中的数据,并且我将标签存储在另外 2 个数组中,例如

var data = [10, 5, -5, -10, 2, -2, 8, -8];
var leftLabels = ["label 1","label 2", ...];
var rightLabels = ["label 1", "label 2", ...];

欢迎任何想法或示例链接。

最佳答案

我不是d3.js方面的专家,但我认为这很容易做到。有不同的方法可以解决这个问题。我创建了一个pen对于您的用例。

我将粘贴下面代码的重要部分。在您的图表中,您肯定需要进行一些调整以满足您的需求。随意调整这些值,直到您感觉它们稳定为止。

// Your array containing labels for left and right values

var leftSideData = ["left1", "left2", "left3", "left4", "left5", "left6", "left7", "left8"];

var rightSideData = ["right1", "right2", "right3", "right4", "right5", "right6", "right7", "right8"];

var left = svg.selectAll(".leftData")
    .data(leftSideData)
    .enter().append("g")
    .attr("class", "leftVal")
    .attr("transform", function(d, i) {
      return "translate(0," + i * 57 + ")";
    });

  left.append("text")
    .attr("x", 0)
    .attr("y", 9)
    .attr("dy", ".35em")
    .style("text-anchor", "end")
    .text(function(d) {
      return d;
    });

  var right = svg.selectAll(".rightData")
    .data(rightSideData)
    .enter().append("g")
    .attr("class", "rightVal")
    .attr("transform", function(d, i) {
      return "translate(0," + i * 57 + ")";
    });

  right.append("text")
    .attr("x", width + 30)
    .attr("y", 9)
    .attr("dy", ".35em")
    .style("text-anchor", "end")
    .text(function(d) {
      return d;
    });

我不会说这是完美的,但我希望您了解如何实现它。祝一切顺利!!

关于javascript - 在条形图中的 <rect> 两端添加标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36290335/

相关文章:

javascript - D3.js:尝试构建平面日历

javascript - 启动时加载scrollIntoView

javascript - 如何从 extjs 4.2 网格获取行元素

javascript - D3 饼图中的每个选择

jquery - 将 AngularJS/AngularUI 与 d3.js 和 DOM 效果结合使用

javascript - d3 如果数据中存在值,则添加文本元素

javascript - 如何过滤数据并填充D3.js堆积条形图?

javascript - 我的脚本中的循环迭代不正确

javascript - JQuery Cookie.js 保存 cookie

JavaScript、ajax、表格、颜色