缩放D3中堆积的条形图?

加麦

我在程序中有一个简单的堆积条形图,但是我真的不知道如何将其缩放到适当的大小,因为现在值大约为1并且非常薄。看起来是这样的:

===

这是我想要的样子:

5|
4| ZZZZ
3| YYYY
2| XXXX
1| XXXX
 |-------

以下是相关代码:

        //Bar Graph
        var canvas = d3.select("#canvas").append("svg").attr({
            width: 400,
            height: 400
        })

        var values = [xtwo, xone, xzero]

        var colours = ['#FA0', '#0AF', '#AF0']

        var data = []

        var yOffset = 0

        //Process the data

        for (var i = 0; i < values.length; i++) {

            var datum = {

                value: values[i],
                colour: colours[i],
                x: 0,
                y: yOffset

            }

            yOffset += values[i]

            data.push(datum)

        }

        yRange2 = d3.scale.linear().range([canvas.height - MARGINS.top, MARGINS.bottom]).domain([0, 5]),

            //setup y
            yAxis = d3.svg.axis()
            .scale(yRange2)
            .tickSize(5)
            .orient("left")
            .tickSubdivide(true);

        var bars = canvas.selectAll('rect').data(data)

        bars
            .enter()
            .append('rect')
            .attr({
                width: 30,
                height: function(d) {
                    return d.value
                },
                y: function(d) {
                    return d.y
                }
            })
            .style({
                fill: function(d) {
                    return d.colour
                }
            })

这是完整的代码:jsfiddle.net/tqj5maza/6/

加麦

该问题实际上是基于:

var canvas = d3.select("#canvas").append("svg").attr({
            width: 400,
            height: 400
        })

因为我尝试将svg附加到svg,但是

canvas.width = 500;
canvas.height = 500;

解决它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章