| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <html>
- <head>
- <title>Grouped Column Chart</title>
- <script type="text/javascript" src="../protovis-d3.1.js"></script>
- </head>
- <body>
- <script type="text/javascript+protovis">
- var n = 3,
- m = 4,
- data = pv.range(n).map(function() pv.range(m).map(Math.random)),
- w = 250,
- h = 400,
- x = pv.Scale.ordinal(pv.range(n)).splitBanded(0, w, 4/5),
- y = pv.Scale.linear(0, 1).range(0, h);
- var vis = new pv.Panel()
- .width(w)
- .height(h)
- .bottom(20)
- .left(20)
- .right(5)
- .top(5);
- var bar = vis.add(pv.Panel)
- .data(data)
- .left(function() x(this.index))
- .add(pv.Bar)
- .data(function(a) a)
- .left(function() this.index * x.range().band / m)
- .width(x.range().band / m)
- .bottom(0)
- .height(y)
- .fillStyle(pv.Colors.category20().by(pv.index));
- bar.anchor("top").add(pv.Label)
- .textStyle("white")
- .text(function(d) d.toFixed(1));
- vis.add(pv.Label)
- .data(pv.range(n))
- .bottom(0)
- .left(function() x(this.index) + x.range().band / 2)
- .textMargin(5)
- .textBaseline("top")
- .text(function() "ABCDEFGHIJK".charAt(this.index));
- vis.add(pv.Rule)
- .data(y.ticks())
- .bottom(function(d) Math.round(y(d)) - .5)
- .strokeStyle(function(d) d ? "rgba(255,255,255,.3)" : "#000")
- .add(pv.Rule)
- .left(0)
- .width(5)
- .strokeStyle("#000")
- .anchor("left").add(pv.Label)
- .text(function(d) d.toFixed(1));
- vis.render();
- </script>
- </body>
- </html>
|