当前位置:  开发笔记 > 编程语言 > 正文

使用d3.js将x轴移动到图表上的坐标(0,0)

如何解决《使用d3.js将x轴移动到图表上的坐标(0,0)》经验,为你挑选了2个好方法。

您可以在此页面上看到我想要实现的示例.

我用这段代码构造了负轴和正轴:

this.svg = d3.select(el).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 + ")");

this.xScale = d3.scale.linear()
      .range([0, width]);

this.yScale = d3.scale.linear()
      .range([height, 0]);

const xAxis = d3.svg.axis()
        .scale(this.xScale);

const yAxis = d3.svg.axis()
        .orient('left')
        .scale(this.yScale);

const data = this.getDataFromProps(this.props.expression);

this.xScale.domain(d3.extent(data, function (d) {return d.x;}));
this.yScale.domain(d3.extent(data, function (d) {return d.y;}));

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

this.svg.append('g')
  .attr('class', 'axis')
  .attr('transform', 'translate(' + width/2 + ',0)')
  .call(yAxis);

唯一的问题是x轴朝向底部.如何将轴定位在svg上的(0,0)?



1> Cyril Cheria..:

只需改变这一行:

this.svg.append('g')
  .attr('class', 'axis')
  .attr('transform', 'translate(0,' + (height/2) + ')')
  .call(xAxis);

使转换为svg高度的一半.



2> 小智..:

要使x轴与y轴的0标记对齐,请使用: -

this.svg.append('g')
.attr('class', 'axis')
.attr('transform', 'translate(0,' + (this.yScale(0)) + ')')
.call(xAxis);

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有