Javascript 为什么我的js.d3代码不显示axis?

Javascript 为什么我的js.d3代码不显示axis?,javascript,css,d3.js,svg,Javascript,Css,D3.js,Svg,我试着用这段代码制作一组x轴和y轴,但我不明白为什么它们没有出现。我希望它显示一组范围为-10到10的轴,红线位于这些轴的上方。我不清楚为什么axis在这个阶段不工作,我代码的后一部分包含axis代码 //variable declaration var width = 500; var height = 300; var margin = 10; //svg setup var svg = d3.select("body") .append("svg")

我试着用这段代码制作一组x轴和y轴,但我不明白为什么它们没有出现。我希望它显示一组范围为-10到10的轴,红线位于这些轴的上方。我不清楚为什么axis在这个阶段不工作,我代码的后一部分包含axis代码

//variable declaration
var width = 500;
var height = 300;
var margin = 10;
//svg setup
var svg = d3.select("body")
            .append("svg")
            .attr("width", width)
            .attr("height", height)
            .append('g') 
            .attr("transform", "translate(" + margin + "," + margin + ")" )
//line setup
svg.append('line')
   .attr({
  x1: 0,
  y1: 0,
  x2: 250,
  y2: 250
});
//scales and axis setup
var scaleX = d3.scale.linear()
        .range([-10, 10])
        .domain([0, width])


var scaleY = d3.scale.linear()
        .range([-10, 10])
        .domain([height, 0])

var axisX = d3.svg.axis()
               .scale(scaleX)  
               .orient("bottom");

var axisY = d3.svg.axis()
               .scale(scaleY)
               .orient("left");

svg.append("g")
   .attr("class", "x axis")
   .attr("transform", "translate(0," + "," + height/2 + ")")
   .call(axisX);

svg.append("g")
   .attr("class", "y axis")
   .attr("transform", "translate(" + width/2 + "," + "0)") 
   .call(axisY);

有一些错误,比如映射从一个域到另一个域,而不是从一个域到另一个域,以及使用Svg代替Svg和Svg.scale代替d3.scale等

你自己看看吧

var width = 500;
var height = 300;
var margin = 30;

//svg setup
var svg = d3.select("body")
  .append("svg")
  .attr("width", width)
  .attr("height", height)
  .append('g')
  .attr("transform", "translate(" + margin + "," + margin + ")");

//line setup


//scales and axis setup
var scaleX = d3.scale.linear()
  .domain([-10, 10])
  .range([0, width])

var scaleY = d3.scale.linear()
  .domain([-10, 10])
  .range([height, 0])

var axisY = d3.svg.axis()
  .scale(scaleY)
  .orient("left");

var axisX = d3.svg.axis()
  .scale(scaleX)
  .orient("bottom");

svg.append("g")
    .attr('class', 'y-axis axis')
  .call(axisY);

svg.append("g")
    .attr('class', 'x-axis axis')
  .call(axisX)
  .attr('transform', 'translate( 0, 250)')