第一部分
您可以使用.ticks
功能指定轴中的值数:
var xAxis = d3.svg.axis()
.scale(x)
.orient("top")
.ticks(end_year-start_year);
jsFiddle
第二部分
您可以为图表创建动态高度,如下所示:
var margin = {top: 20, right: 200, bottom: 0, left: 20},
width = 300,
height = datajson.length * 20 + margin.top + margin.bottom;
也许,你只需要调整项目高度值
jsFiddle