【ほぼメモ】NVD3を使って棒グラフを書いてみた。
D3.jsの拡張ライブラリ?にあたるnvd3を使って、簡単な棒グラフを作ってみました。
さっそくコードです。
書いたコード
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.8.4/nv.d3.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.1.5/d3.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.5.16/nv.d3.js"></script>
<script type='text/javascript'>
window.onload=function(){
var testdata = [
{
x:704646000000,
y:10
},
{
x:707324400000,
y:30
},
{
x:709916400000,
y:50
},
{
x:712594800000,
y:60
},
{
x:715273200000,
y:80
},
{
x:717865200000,
y:90
},
{
x:720543600000,
y:130
},
{
x:723135600000,
y:160
},
{
x:725814000000,
y:300
},
{
x:728492400000,
y:390
},
{
x:730911600000,
y:420
},
{
x:733590000000,
y:450
},
{
x:736182000000,
y:490
}
];
var chartData = [
{
values: testdata,
key: 'result',
color: '#d03c3c'
}
// 複数のグラフを表示したければ、上と同じ感じでどんどん追記
];
nv.addGraph(function() {
var chart = nv.models.multiBarChart()
.transitionDuration(350)
.reduceXTicks(false) //If 'false', every single x-axis tick label will be rendered.
.rotateLabels(-45) //Angle to rotate x-axis labels.
.showLegend(false)
.showControls(false) //Allow user to switch between 'Grouped' and 'Stacked' mode.
.groupSpacing(0.1) //Distance between each group of bars.
;
// x軸のタイトル設定+フォーマット指定(数値指定)
// chart.xAxis
// .tickFormat(d3.format(',f'));
chart.xAxis.tickFormat(function(d) {
return d3.time.format('%Y/%m')(new Date(d))
});
// y軸のタイトル設定+フォーマット指定(数値指定)
chart.yAxis
.tickFormat(d3.format(',0f'));
d3.select('#chart1 svg')
.datum(chartData)
.call(chart);
nv.utils.windowResize(chart.update);
d3.selectAll('.nvtooltip').remove();
return chart;
});
}
</script>
<div id="chart1">
<!-- チャートを表示するための空の SVG -->
<svg></svg>
</div>
実行結果
まだまだ勉強中なので詳しいことは書けない。。。