其他分享
首页 > 其他分享> > 小倍数:如何添加轴?

小倍数:如何添加轴?

作者:互联网

有谁知道如何在下面的示例中添加y轴? https://bl.ocks.org/mbostock/e1192fe405703d8321a5187350910e08

该示例说明了如何使用每个数据系列的动态计算的yScale一次生成多个图表.但是如何使用局部yScale将yAxis添加到每个图表?

解决方法:

给定您链接的示例,您唯一需要做的就是为每个SVG设置局部变量:

axis.set(this, d3.axisRight(ty).ticks(3));

在这里,我使用ticks(3)是因为那里没有太多垂直空间,而ty是为每个SVG创建的比例.然后,您以后可以将该局部变量用作:

svg.each(function(){
    axis.get(this)(d3.select(this)
        .append("g")
        .attr("transform", "translate(" + width + ",0)"));
});

这是更新的bl.ocks:https://bl.ocks.org/GerardoFurtado/7ce71db8470c75940feed0d64b3f1f25/fb38b0867f434268e254f08e469cf38113179472

PS:请注意以下事实:我在这里使用…

axisGenerator(groupSelection)

而不是更传统的方式

groupSelection.call(axisGenerator)

…因为我们无法用传统模式做到这一点.为了在没有每种方法的情况下使用传统模式,您需要一个奇怪的辅助函数,例如:

svg.append("g")
    .attr("transform", "translate(" + width + ",0)")
    .call(generateAxis);

function generateAxis(selection) {
    selection.call(axis.get(selection.node()));
};

标签:svg,d3-js,axis,javascript
来源: https://codeday.me/bug/20191210/2105251.html