javascript - d3js 来自单个数组元素的图表中的多个条形

标签 javascript d3.js

This fiddle pretty much explains what I'm trying to accomplish.

它显示了问题和建议的解决方案,但我想知道我的解决方案是否“正确”。

基本上,我有代表团队一周得分的 JSON。

games = [
    {
        hometeam : "scouts",
        homeTeamScore : "21",
        visitor : "sharks",
        visitorScore : "17"
    },
    {
        hometeam : "gators",
        homeTeamScore : "28",
        visitor : "wild cats",
        visitorScore : "24"
    }
]

如何制作一个条形图,其中每场比赛输出代表每支球队得分的两个条形图(数组的一个元素中的两个条形图)?它看起来像这样:

-----------------scouts 21
-----------sharks 17
-------------------gators 28
----------------wild cats 24

我似乎无法理解如何使用数组中的单个元素执行 .data(games).enter().append() 来输出每个团队的得分,因为我“认为”我只能输出一个条目对于每个数组元素。

如果我生成自己的数组,我就可以做到这一点,这不是问题(请参阅 fiddle ),但这是处理这种情况的最佳、最简单的方法吗?

再次:here is the fiddle link

最佳答案

一个常见的“技巧”是保存.enter()选择并对其进行多次操作。这正是您想要的:

var divs = d3.select('.chart2')
  .selectAll('div')
  .data(data)
  .enter();

divs.insert('div')
  .attr("class", 'home')
  .style("width", function(d) {
      return d.hs * 10 + "px";
  })
  .text(function(d) { 
    return d.hnn + ' ' + d.hs; 
  });

divs.insert('div')
  .attr("class", 'visitor')
  .style("width", function(d) {
    return d.vs * 10 + "px";
  })
  .text(function(d) { 
    return d.vnn + ' ' + d.vs; 
  });

完整示例 here .

关于javascript - d3js 来自单个数组元素的图表中的多个条形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22024892/

相关文章:

javascript - d3 v4 TypeScript DefinitelyTyped Angular2 线与 X 轴上的 ScaleTime

javascript - 如何使用coffeescript或javascript读取json文件/解析的值以在d3 java脚本中使用

javascript - 没有 js 的任何方式都可以确保相同 'row' 中的 float div 在不设置高度属性的情况下具有相同的高度

javascript - 将 d3 Legend 放入单独的 Div

javascript - 如何在 D3.js 中创建领结方法/图表?

javascript - 如何知道 react 传单弹出窗口何时关闭

javascript - React - 警告 : React. createElement : type should not be null, 未定义、 bool 值或数字

javascript - 如何正确重定向所选列表

javascript - Grunt connect-modrewrite 不起作用

javascript - JS内部动态加载JS