2017-02-19 51 views
0

以下代碼顯示我當前的圖表。如何編輯xaxis的標籤以顯示「2015」,「2016」,「2017」,「2018」和「2019」的年份?我在D3中真的很新。如何更改D3圖表中的xaxis標籤?

var data = new Array (1, 2, 3, 4, 5); 
var x_scale = d3.scale.linear() 
     .domain([0,d3.max(data, function(d,i) { return i+1 })]) 
     .range([62,540]) 
    var xAxis = d3.svg.axis() 
     .scale(x_scale) 
     .tickSize(0,0) 
     .ticks(5) 
     .tickPadding(6) 
     .orient("bottom"); 
    d3.select("svg").append("g") 
     .call(xAxis) 
     .attr("class","xaxis") 
     .attr("transform","translate(0,364)"); 


var y_scale = d3.scale.linear() 
    .domain([d3.max(data, function(d) { return d }),0]) 
    .range([54,364]) 
var yAxis = d3.svg.axis() 
    .scale(y_scale) 
    .tickSize(-10,0) 
    .ticks(5) 
    .tickPadding(6) 
    .orient("left"); 
d3.select("svg").append("g") 
    .call(yAxis) 
    .attr("class","yaxis") 
    .attr("transform","translate(62,0)"); 


var saeule = d3.select("#saeulen").append("g") 
    .attr("class","saeule") 
    .style("color","#F49600"); 
var bar_padding=10; 
var bar_width=x_scale(1)-x_scale(0)-bar_padding; 
saeule.selectAll("g") 
    .data(data) 
    .enter() 
    .append ("rect") 
    .attr("fill","#F49600") 
    .attr("x" , function (d,i) { return (x_scale(i+1) - (bar_width/2)) }) 
    .attr("y", function (d,i) { return (y_scale(d)) }) 
    .attr("width", bar_width) 
    .attr("height", function (d,i) { return (y_scale(0)-y_scale(d)) }); 

回答

0

你可以給在x軸上這樣自己剔格式:

var xAxis = d3.svg.axis() 
    .scale(x_scale) 
    .tickSize(0,0) 
    .ticks(5) 
    .tickPadding(6) 
    .orient("bottom") 
    .tickFormat(function(d){return d+2015;});//will return 2015 for 0 2016 for 1 etc. 

工作代碼here

+0

好,冬暖夏涼。有用。但正如你的例子,它從2015年開始於0.我該如何解決這個問題?我想從你知道的第一批數據開始。 – johny

+0

我已經向您展示瞭如何根據您的業務邏輯隨意更改滴答功能 – Cyril