javascriptで簡単に様々なグラフを描画できるc3.jsですが、
絶妙に機能が足りない・・・いや逆に多い・・・
だがd3.jsで一から作る余裕も無い・・・
そんなことありますよね。
そんな時にとった方法がこんな感じ。
###html
<div id="chart"></div>
###js
var chart = c3.generate({
data: {
columns: [
['data1', 1, 2, 3, 4, 5],
['data2', 5, 4, 3, 2, 1]
],
type: 'area'
},
onrendered: function () {
// d3で取得
var svg = d3.select('#chart').select('svg')
// jQueryで取得はコチラ
// var svg = $('#chart svg')
// 今回はグラフの背景色を編みかけ調やドット調にするためdefsにパターンを追加していきました。
svg.select('defs').append('pattern')
//・・・以下省略
}
});
描画完了のコールバックで生成されたSVGを取得煮るなり焼くなりしてみました。
初期表示だけ処理を行う場合は『oninit』、リサイズ時のみの場合は『onresized』で。
他に良い方法ある気がするなぁ。
ご存知の方いらっしゃいませんか?