티스토리 뷰


예쁘지 아니한가?
애니메이션효과는 다음장에서 다루도록 합시다.

직접 한번 해보고. 스타일은 각자 맘에 드는형태로 해보아요~

d3.js 를 사용했습니다. http://mbostock.github.com/d3/ 


<!DOCTYPE HTML>
<html>
    
    <head>
        <meta charset="utf-8">
        <script type="text/javascript" src="d3.v2.js"></script>
        <style>
            .chart {
                margin-left:42px;
                font: 10px"Comic Sans MS", cursive;
                shape-rendering:crispEdges;
            }
            .chart div {
                background-colkr:steelblue;
                text-align:right;
                padding:3px;
                margin:1px;
                color:white;
            }
            .chart rect {
                stroke:white;
                fill:steelblue;
            }
            .chart text {
                fill:white;
            }
        </style>
        <title>무제 문서</title>
    </head>
    
    <body>
        <div id="body">
            <div id="content">
                <script>
                    var data = [5, 1, 3, 6, 7, 8];

                    var chart = d3.select("body").append("svg").attr("class", "chart").attr("width", 420).attr("height", 20 * data.length);


                    var x = d3.scale.linear() // 막대형 차트를
                    .domain([0, d3.max(data)]).range([0, 420]); // svg로 그리려는 영역이 최소 0에서 최대 420이다.
                    chart.selectAll("rect") // 윗부분에서 chart 
                    .data(data).enter().append("rect") // rect를 추가해준다.
                    .attr("y", function (d, i) {
                        return i * 20;
                    }).attr("width", x).attr("height", 20);


                    var y = d3.scale.ordinal() // 막대차트에 값을 넣는다.
                    .domain(data).rangeBands([0, 120]);
                    chart.selectAll("rect").data(data).enter().append("rect").attr("y", y).attr("width", x).attr("height", y.rangeBand());


                    chart.selectAll("text") // 값표시
                    .data(data).enter().append("text").attr("x", x).attr("y", function (d) {
                        return y(d) + y.rangeBand() / 2;
                    }).attr("dx", -3) // padding-right
                    .attr("dy", ".35em") // vertical-align: middle
                    .attr("text-anchor", "end") // text-align: right
                    .text(String);
                </script>
            </div>
        </div>
    </body>

</html>

'프로그래밍 > SVG' 카테고리의 다른 글

SVG로 만든 기본 bar chart (2) - d3.js 이용  (0) 2012.03.21
SVG Animate  (0) 2012.03.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함