【问题标题】:D3 barchart not populating.D3 条形图未填充。
【发布时间】:2015-07-13 05:54:37
【问题描述】:

我正在尝试使用 D3 创建条形图。但是,条形图未填充。以下是我的代码:

 var data = [Math.random(), Math.random(), Math.random(), Math.random(), Math.random(), Math.random()]

var height = 900 
var width = 600 

var x = d3.scale.linear()
    .range([0, width])
    .domain([0, d3.max(data)])

var y = d3.scale.linear()
    .range([height, 0])
    .domain([0, 500])

var svg = d3.select(".barchart").append('svg')
    .attr("height", height)
    .attr("width", width)    

var rect = svg.selectAll('rects')
    .data(data)
    .enter()
    .append('rects')
    .attr("height", function(d, i) { return height - y(d) })
    .attr("width", function (d, i) { return x(d) })
    .attr("x", function(d, i) { return x(i) })
    .attr("y", function(d, i) { return y(d) })
    .attr("fill", "blue")

【问题讨论】:

    标签: javascript math random svg d3.js


    【解决方案1】:

    问题不止一个,我就一一列举。

    更改您的 x 和 y 比例。你的有点不对劲。

    var x = d3.scale.linear()
        .range([0, width])
        .domain([0, data.length]);
    
    var y = d3.scale.linear()
        .range([0, height])
        .domain([0, d3.max(data)]);
    

    将“rects”更改为“rect”。

    var rect = svg.selectAll('rect') // <-- here
        .data(data)
        .enter()
        .append('rect') // <-- and here
    

    最后,您的 x、y、宽度和高度计算的逻辑已关闭。

    .attr("height", function(d, i) { return y(d); })
    .attr("width", width / data.length - 1)
    .attr("x", function(d, i) { return x(i); })
    .attr("y", function(d, i) { return height - y(d); })
    

    确保您使用的是分号。

    http://jsfiddle.net/gnouvg6z/

    【讨论】:

    • @ihoworko。谢谢您的帮助。我期待你的例子(我实际上是要一个垂直条形图)
    • @pandoo 看看,希望这就是你要找的。​​span>
    • 是的。我有几个问题。为什么rects需要是rect?这是一个特殊的 d3 约定吗?另外,宽度部分中的 -1 是您添加的 barpadding 吗?
    • 'rects' 不是 svg 元素,'rect' 是。我想您可以在 svg.selectAll 语句中使用“rects”,但您必须在 .append 语句中使用“rect”。 -1 只是获得条之间的 1px 间距,您可以删除它并添加边框,或者任何您喜欢的。
    猜你喜欢
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 2021-10-28
    • 2016-01-15
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 2014-11-10
    相关资源
    最近更新 更多