在d3 v4中创建轴和参考线时出错

时间:2019-06-05 03:46:19

标签: d3.js

我正在尝试创建条形图的YAx。

现在,我已经通过使用以下命令完成了vScale:

var vScale = d3.scaleLinear()
            .domain([50000, yValue])
            .range([450, 0]);

然后,我使用以下命令创建了VAxis和VGuide:

//V Axis
        var vAxis = d3.axisLeft(vScale)
            .ticks(10)
            .tickPadding(5);


 //V Guide
        var vGuide = d3.select("svg")
            .append("g")
            .vAxis(vGuide)
        vGuide.attr("transform", "translate(35,10)")
        vGuide.selectAll("path")
            .style("fill", "none")
            .style("fill", "#000")
        vGuide.selectAll("line")
            .style("stroke", "#000")

结果显示错误“ vAxis未定义”。 我对哪一步做错了感到困惑。我参考了有关d3v3的代码来创建轴,但不确定如何将其适应d3v4。

期待详细的帮助。欣赏。

2 个答案:

答案 0 :(得分:0)

有一个错误:vGuide是一个选择对象,它没有方法调用“ vAxis”。

您应该这样写: vGuide = d3.select(“ svg”)。append(“ g”)。call(vAxis)

async def child(x):
    print(f"Child sleeping {x}")
    await trio.sleep(x)
    return 2*x

async def parent():
    tasks = [(child, t) for t in range(3)]
    return await trio.gather(*tasks)

print("results:", trio.run(parent))

答案 1 :(得分:0)

您错误地调用了轴渲染功能。 vAxis是呈现功能,d3.selection上不存在此功能。如果查看示例https://github.com/d3/d3-axis#api-reference,则应该.call(axisFunction)

更改此设置将解决您的问题:

var vGuide = d3.select("svg")
            .append("g")
            .call(vAxis);