D3绘制柱状图

D3绘制柱状图

本文绘制一个横向的柱形图。只绘制矩形,不绘制文字和坐标轴

// 在 SVG 中,矩形的元素标签是 rect。例如:
<svg>
<rect></rect>
<rect></rect>
</svg>

上面的 rect 里没有矩形的属性。矩形的属性,常用的有四个:

​ x:矩形左上角的 x 坐标
​ y:矩形左上角的 y 坐标
​ width:矩形的宽度
​ height:矩形的高度
要注意,在 SVG 中,x 轴的正方向是水平向右,y 轴的正方向是垂直向下的。

<html>
<head>
    <meta charset="utf-8">
    <title>HelloWorld</title>
</head>
<body>
    <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
    <script>
        var dataset = [250, 210, 170, 130, 90]; //数据(表示矩形的宽度)
        var width = 300;  //画布的宽度
        var height = 300;   //画布的高度
        var svg = d3.select("body")     //选择文档中的body元素
            .append("svg")          //添加一个svg元素
            .attr("width", width)       //设定宽度
            .attr("height", height);    //设定高度

        var rectHeight = 25;   //每个矩形所占的像素高度(包括空白)
        svg.selectAll("rect")  // 选择svg内所有的矩形
            .data(dataset)  //绑定数组
            .enter()     //指定选择集的enter部分
            .append("rect")  //添加足够数量的矩形元素
            .attr("x", 20)
            .attr("y", function (d, i) {
                return i * rectHeight;
            })
            .attr("width", function (d) {
                return d;
            })
            .attr("height", rectHeight - 2)
            .attr("fill", "steelblue");  //给矩形元素设置颜色
    </script>
</body>
</html>
上一篇:SVG图标使用心得


下一篇:商业项目中选择框架和库的原则