var container = d3.select('#container'); var svg = container.append('svg').attr({width: 240, height: 20}); var now = new Date; var end_date = new Date(now.getFullYear(), now.getMonth(), now.getDate()); var start_date = new Date(+end_date - 1000 * 60 * 60 * 24 * 7); // 日付を座標に対応付け var x = d3.time.scale() .domain([start_date, end_date]) .rangeRound([20, 220]); var x_axis = d3.svg.axis() .scale(x) .orient('bottom') // 目盛りを1日ごとに設定 .ticks(d3.time.days, 1) .tickFormat(function(d, i) { // 1つ目の項目、月初めだけ月を表示する。2日目以降は日のみ var date = d.getDate(), format = i === 0 || date === 1 ? '%b %-d' : '%-d'; return d3.time.format(format)(d); }); // 表示 svg.append('g') .attr({ 'font-size': 12, 'fill' : '#999' }) .call(x_axis) .selectAll('path, line') .attr({ 'fill' : 'none', 'stroke': '#999' });
<div id="container"></div>