2
私の棒グラフでは、という軸の値がstring
の形式になっています。これらの値をxAxis
- ダニ?d3.Js - カスタム( "文字列")値をy軸に設定する方法 - 目盛り
は、ここに私のコードです:事前に詳細
window.onload = function(){
var margin = { left:30, top:30, right:30, bottom:30 },
width = 550 - margin.left - margin.right,
height = 400 - margin.top - margin.bottom,
totalWidth = width + margin.left + margin.right,
totalHeight = height + margin.top + margin.bottom;
var data = [5,20,80,120,35,90,340, 145, 601, 11, 67, 810 ];
var yData = [2012,2013,2014,2015,2016];
//how to set aData to yAxis?
var aData = ['0','$50M','$1B','$1.5B','$2B', '$2.5B','$3B'];
var y = d3.scale.linear().range([height, 0]);
var x = d3.scale.ordinal().rangeRoundBands([0, width], .1);
x.domain(yData.map(function(d) { return d; }));
var xAxis = d3.svg.axis().scale(x).orient("bottom");
var yAxis = d3.svg.axis().scale(y).tickFormat(function(d){
return d; //i required to set from aData
}).orient("left").ticks(5);
var svg = d3.select('#container').append('svg').attr({width:totalWidth,height:totalHeight});
var graphMargin = "translate(" + margin.left + ',' + margin.top + ')';
var playBoard = svg.append('g').attr("transform", graphMargin);
playBoard.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + (height+1) + ")")
.call(xAxis);
playBoard.append("g")
.attr("class", "y axis")
.call(yAxis);
}
感謝のコメントで参照してください。