D3.js 将x轴移动到任意位置

D3.js 将x轴移动到任意位置,d3.js,D3.js,我有以下代码,它绘制了d3.js散点图。我的问题是如何将x轴移动到任意位置(如下图中的红线)。换句话说,我想知道如何翻译坐标系的原点 var data = [[5,3], [10,17], [15,4], [2,8]]; var margin = {top: 20, right: 15, bottom: 60, left: 60}, width = 960 - margin.left - margin.right, height = 500 - margin.top - mar

我有以下代码,它绘制了d3.js散点图。我的问题是如何将x轴移动到任意位置(如下图中的红线)。换句话说,我想知道如何翻译坐标系的原点

var data = [[5,3], [10,17], [15,4], [2,8]];

var margin = {top: 20, right: 15, bottom: 60, left: 60},
    width = 960 - margin.left - margin.right,
    height = 500 - margin.top - margin.bottom;

var x = d3.scale.linear()
  .domain([0, d3.max(data, function(d) { return d[0]; })])
  .range([ 0, width ]);

var y = d3.scale.linear()
  .domain([0, d3.max(data, function(d) { return d[1]; })])
  .range([ height, 0 ]);

var chart = d3.select('body')
  .append('svg:svg')
    .attr('width', width + margin.right + margin.left)
    .attr('height', height + margin.top + margin.bottom)
    .attr('class', 'chart')

var main = chart.append('g')
    .attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
    .attr('width', width)
    .attr('height', height)
    .attr('class', 'main')   

    // draw the x axis
var xAxis = d3.svg.axis()
    .scale(x)
    .orient('bottom');

main.append('g')
    .attr('transform', 'translate(0,' + height + ')')
    .attr('class', 'main axis date')
    .call(xAxis);

// draw the y axis
var yAxis = d3.svg.axis()
    .scale(y)
    .orient('left');

main.append('g')
    .attr('transform', 'translate(0,0)')
    .attr('class', 'main axis date')
    .call(yAxis);

var g = main.append("svg:g"); 

g.selectAll("scatter-dots")
  .data(data)
  .enter().append("svg:circle")
  .attr("cx", function (d,i) { return x(d[0]); } )
  .attr("cy", function (d) { return y(d[1]); } )
  .attr("r", 8);
使用y刻度:

main.append('g')
    .attr('transform', 'translate(0,' + y(6) + ')')
    .attr('class', 'main axis date')
    .call(xAxis);
下面是一个演示:

var数据=[[5,3]、[10,17]、[15,4]、[2,8];
var margin={顶部:20,右侧:15,底部:60,左侧:60},
宽度=960-margin.left-margin.right,
高度=500-margin.top-margin.bottom;
var x=d3.scale.linear()
.domain([0,d3.max(数据,函数(d){返回d[0];})])
.范围([0,宽度]);
变量y=d3.scale.linear()
.domain([0,d3.max(数据,函数(d){返回d[1];})])
.范围([高度,0]);
变量图表=d3。选择('主体')
.append('svg:svg')
.attr('width',width+margin.right+margin.left)
.attr('height',height+margin.top+margin.bottom)
.attr('类','图表')
var main=chart.append('g')
.attr('transform','translate('+margin.left+','+margin.top+'))
.attr('width',width)
.attr('height',height)
.attr('class','main')
//画x轴
var xAxis=d3.svg.axis()
.比例(x)
.orient(“底部”);
main.append('g')
.attr('transform','translate(0',+y(6)+'))
.attr('class','x轴日期')
.呼叫(xAxis);
//绘制y轴
var yAxis=d3.svg.axis()
.比例(y)
.东方(左);
main.append('g')
.attr('transform','translate(0,0'))
.attr('类别','y轴日期')
.呼叫(yAxis);
var g=main.append(“svg:g”);
g、 选择全部(“散点”)
.数据(数据)
.enter().append(“svg:circle”)
.attr(“cx”,函数(d,i){返回x(d[0]);})
.attr(“cy”,函数(d){返回y(d[1]);})
.attr(“r”,8);
d3.selectAll(“.x.tick”).filter(函数(d){return d==0;}).remove()
.axis path、.axis line{
不透明度:1;
填充:无;
行程:#4e5a64;
形状渲染:边缘清晰;
}