D3条形图和html数据属性

D3 bar chart and html data attributes

本文关键字:数据属性 html 条形图 D3      更新时间:2023-09-26

我有一个D3缩放条形图,这是正在传递到图表的当前数据:

var data = [{"date":"2012-03-20","total":3},{"date":"2012-04-21","total":8},{"date":"2012-05-22","total":2},{"date":"2012-06-23","total":10},
{"date":"2012-07-24","total":3},{"date":"2012-08-25","total":20},
{"date":"2012-09-26","total":12},{"date":"2012-10-23","total":10},
{"date":"2012-11-24","total":3},{"date":"2012-12-25","total":20},{"date":"2012-12-26","total":12}];

我想做的是传递数据属性:

<div class="test">
  <div class"red" data-name"bar1" data-date="2012-03-20" data-total="6">
  </div>
  <div class="blue" data-name="bar2" data-date="2012-04-21" data-total="10">
 </div>
</div>

我希望从"data-date"answers"data-value"中获得日期和值。我需要对变量"x"answers"y"做哪些相关的修改?

它们现在是这样的:

var x = d3.time.scale()
    .domain([new Date(data[0].date), d3.time.day.offset(new Date(data[data.length - 1].date), 1)])
    .rangeRound([0, width - margin.left - margin.right]);
var y = d3.scale.linear()
    .domain([0, d3.max(data, function(d) { return d.total+ (d.total/4); })])

完整的代码可以在这里找到:https://jsfiddle.net/noobiecode/wck4ur9d/49/

不需要jquery, d3已经覆盖了:

var data = [];
d3.selectAll(".test>div")
  .each(function() {
    var self = d3.select(this);
    data.push({
      date: self.attr("data-date"),
      total: +self.attr("data-value")
    });
  });

更新小提琴。