【问题标题】:NVD3 stacked bar chart does not show x-axis properlyNVD3 堆积条形图未正确显示 x 轴
【发布时间】:2017-03-06 04:12:36
【问题描述】:

我正在尝试使用 NVd3 制作堆叠条形图,但不幸的是 x 轴无法正确显示。我想在 x 轴上显示从 1999 年到 2014 年的年份,但这就是我得到的。

似乎 nvd3 将不同年份的所有值组合在一起。

Javascript 代码

var data1 = [{}], deaths = 0;

console.log(data1);
d3.csv('data/CENS-R1/ageGroups.csv', function(data) {
  for (var i = 0; i < 12; i++) {
    // setup a new entry for that age group
    data1[i] = {
      key: "1",
      values: []
    }
    var v = i * 16;
    // go through all the data
    for (var j = 0; j < data.length; j++) {
      // check if i equals the correct entries
      if (0+v <= j && j < 16+v) {
        data1[i].key = data[j].Age;
        data1[i].values.push(
            {
                "x": (new Date()).getTime(parseInt(data[j]).Year),
                "y": parseInt(data[j].Deaths)
            }
        );
      }
    }
  }
});
console.log(data1);
nv.addGraph(function() {
    var chart = nv.models.multiBarChart();

    // format x-axis
    chart.xAxis.tickFormat(function(d) { return                 d3.time.format('%Y')(new Date(d)) });

    chart.yAxis
        .tickFormat(d3.format(',.1f'));

    d3.select('#stacked-chart svg')
        .datum(data1)
        .transition()
        .duration(500)
        .call(chart);

    nv.utils.windowResize(chart.update);

    return chart;
});

CSV 文件示例

CENS-R1,1,1999,1999,4390 CENS-R1,1,2000,2000,4354 CENS-R1,1,2001,2001,4188

任何帮助将不胜感激。

【问题讨论】:

  • 您能否将您的代码放在fiddle 中,以便有人可以轻松地帮助您编写代码。

标签: javascript csv d3.js data-visualization nvd3.js


【解决方案1】:

显然我解析日期的函数是错误的。我没有使用"x": (new Date()).getTime(parseInt(data[j]).Year) 创建新日期,而是使用了Date.parse() 函数,这似乎有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-19
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多