Canvasで円グラフ。
そもそも扇形が作りたかったのは、円グラフを作りたくて。
さっき作ったsector()を使って円グラフっぽくはなった。
設定したパーセントに応じて扇形を作って円になるように
並べただけなんだけど。
var canvas = d.getElementById("canvas"); var ctx = canvas.getContext('2d'); var percent = [60, 10, 20, 5, 5]; var colors = ["red", "blue", "green", "black", "orange"]; var start = 270; var end = 270; for (var i = 0, len = percent.length; i < len; i++) { ctx.beginPath(); end += 360 * (percent[i] / 100); sector(ctx, 50, 50, 40, start, end); ctx.fillStyle = colors[i]; ctx.fill(); ctx.stroke(); start = end; }
既知の不具合(というかこの扇形の作り方だとどうにもならないか?)で
50パーセント以上の値は設定できない。
対策としてはCanvasはz軸は書いた順だからグラフをパーセントの大きい
順にソートしてから書き出せばうまいこと隠れるんだけど、、、
これじゃ汎用的じゃないよな。
いや、円グラフってパーセントが大きい順に並べるのが普通か??