javascript - 如何让第二条显示在分组条形图上?

标签 javascript d3.js

我正在尝试在我的图表中添加第二个条形图。元素已正确附加,但位置不正确且高度不正确。我希望数据在 x 轴的第 1 个位置有 2 个条,一个高度为 2,另一个高度为 3,依此类推。

http://jsfiddle.net/626uesbh/4/

var svg2 = d3.select("#histogram").append("svg2")
      .attr("width", width + margin.left + margin.right)
      .attr("height", height + margin.top + margin.bottom)
    .append("g")
      .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

svg2.selectAll(".rect")
      .data(data)
    .enter().append("g")
      .attr("transform", "translate(0, 100)")
    .append("rect")
      .attr("class", "rect")
      .attr("width", 10)
      .attr("height", function(d) { return height - y2Map(d); })
      .attr("x", xMap)
      .attr("y", yMap)
      .style("fill", "blue");

我怀疑 svg2 变换是问题所在,但在尝试摆弄它一个小时后,我似乎可以得到我想要的东西。我查看了这个问题并尝试将其实现到我的问题中。 D3.js grouped bar chart

最佳答案

由于数据中的每个元素都包含两个条形的值,因此您必须将它们作为一个组添加。也就是说,为数组中的每个元素在图表中添加一个“g”元素,然后为 inner_array[1] 和 inner_array[2] 添加一个条形图。

希望这能让你走上正确的道路,基本上我所做的只是你的//bar 评论之后的内容。

http://jsfiddle.net/626uesbh/6/

  // bar
  var bar_groups = svg.selectAll('.bar-group')
      .data(data)
      .enter().append('g')
      .attr('class', 'bar-group');

  bar_groups.append('rect')
      .attr("class", "rect")
      .attr("width", 10)
      .attr("height", function(d) { return height - yScale(d[1]); })
      .attr("x", function(d) {
          return xScale(d[0]) - 5;
      })
      .attr("y", function(d) {
          return yScale(d[1]);
      })
      .style("fill", "green");

  bar_groups.append('rect')
      .attr("class", "rect")
      .attr("width", 10)
      .attr("height", function(d) { return height - yScale(d[2]); })
      .attr("x", function(d) {
          return xScale(d[0]) + 5;
      })
      .attr("y", function(d) {
          return yScale(d[2]);
      })
      .style("fill", "blue");

注意:有更优雅的方法可以做到这一点。我只是向您展示如何将栏添加到您现有的代码中。请看http://bl.ocks.org/mbostock/3887051以获得进一步的指导。

关于javascript - 如何让第二条显示在分组条形图上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31753616/

相关文章:

javascript - 如何使用 JavaScript 自动登录到脚本编辑器中的消息窗口

javascript - JavaScript 中的 self() 属性

javascript - 将点击事件绑定(bind)到D3元素

javascript - D3 - 以点击的国家为中心

javascript - D3 条形图未填充。

javascript - 工具提示上的 d3 转换不起作用

javascript - JQuery 中的 $(this) 问题

javascript - jQuery 选择器仅第一级 div

javascript - d3表格动态列左边框线

javascript - d3 line.defined 不绘制零值