无法在d3 js中显示x轴上的最小值和最大值

时间:2015-08-06 07:46:16

标签: d3.js

我使用基本的d3 js线图。 x -axis的最小值和最大值类似于

min = 128000 and max = 447916.09

两个值都不会显示在x轴上。我如何让它们出现?这是我用来绘制轴线的代码。

var x = d3.scale.linear().domain([min, max]).range([0, width]);
var y = d3.scale.linear().domain([0, 25]).range([height, 0]);
var xAxis = d3.svg.axis().scale(x).orient("bottom");
var yAxis = d3.svg.axis().scale(y).tickValues([0, 5, 10, 15, 20, 25]).orient("left");
svg.append("g").attr("class", "x axis").attr("transform", "translate(0," + height + ")").call(xAxis).selectAll("text").style("text-anchor", "end").attr("dx", "-.8em").attr("dy", ".15em").attr("transform", "rotate(-90)");

1 个答案:

答案 0 :(得分:0)

您无法看到x轴的原因是缺少在源代码中声明和初始化的宽度和高度变量。

var min = 500, max = 960;
var margin = {top: 20, right: 20, bottom: 30, left: 50},
    width = max - margin.left - margin.right,
    height = min - margin.top - margin.bottom;`var x = d3.scale.linear().domain([min, max]).range([0, width]);  
var y = d3.scale.linear().domain([0, 25]).range([height, 0]);
var xAxis = d3.svg.axis().scale(x).orient("bottom");
var yAxis = d3.svg.axis().scale(y).tickValues([0, 5, 10, 15, 20, 25]).orient("left");` `var svg = d3.select("body").append("svg")
    .attr("width", width + margin.left + margin.right)
    .attr("height", height + margin.top + margin.bottom)
  .append("g")
    .attr("transform", "translate(" + margin.left + "," + margin.top + ")");` ` svg.append("g")
      .attr("class", "x axis")
      .attr("transform", "translate(0," + height + ")")
      .call(xAxis)
      .selectAll("text")        
      .style("text-anchor", "end");` `svg.append("g")
      .attr("class", "y axis")
      .call(yAxis)
    .append("text")
      .attr("transform", "rotate(-90)")
      .attr("y", 6)
      .attr("dy", ".71em")
      .style("text-anchor", "end")
      .text("Y Axis Tick Values");`