繁体   English   中英

新的D3 API中“ .orient()”的替代方案是什么?

[英]What is the alternative of '.orient()' in the new D3 API?

在D3旧API中,有一个orient()函数可沿轴更改刻度位置,例如d3.svg.axis().scale(x).orient("top")

上面的代码的结果是这样的: https : //drive.google.com/open?id=0ByJwk0csqIvZOUd3Ml8wUHhGTG8

但是,在新的API中,我找不到类似的方法。 是否有其他替代方法可以完成类似任务?

更改日志清楚地显示了更改:

D3 4.0提供了默认样式和较短的语法。 现在,D3 4.0可以代替d3.svg.axis和axis.orient为每个方向提供四个构造函数:d3.axisTop,d3.axisRight,d3.axisBottom,d3.axisLeft。

因此,此v3语法为:

d3.svg.axis.scale(scale).orient("top");

在v4中应该是这样的:

d3.axisTop(scale);

根据API, d3.axisTop(scale)

为给定的比例构造一个新的面向顶部的轴生成器,其空的刻度参数,刻度尺寸为6且填充值为3。在此方向上,刻度绘制在水平域路径上方。

这是一个非常简单的演示,将d3.axisTop()d3.axisBottom()进行了比较。 第一个轴使用d3.axisTop() ,而第二个轴使用d3.axisBottom()

 var svg = d3.select("svg"); var orientations = ["axisTop", "axisBottom"]; var gX = svg.selectAll(null) .data(orientations) .enter() .append("g") .attr("transform", (d, i) => "translate(0," + (50 + 50 * i) + ")") .each(function(d) { d3.select(this).call(d3[d](d3.scaleLinear().range([10, 290]))) }) 
 <script src="https://d3js.org/d3.v4.min.js"></script> <svg></svg> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM