javascript - 轴不显示和对齐

标签 javascript d3.js

下面的代码绘制了一个圆和一个 x 轴。有几个问题。 y 轴未显示,但正在添加:

svgContainer.append('g')
        .attr("class", "axis")
        .call(yAxis);

x 轴未与底部对齐,但我已将方向设置为底部:

orient("bottom").ticks(5);

这里是完整的代码:

<!DOCTYPE html>
<html>
<head>

    <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>

</head>

<body>
    <script>

        var svgContainer = d3.select("body").append("svg")
                .attr("width", 1000)
                .attr("height", 1000);

        var circle = svgContainer.append("circle")
                .attr("cx", 150)
                .attr("cy", 150)
                .attr("r", 100)
                .attr("fill", "none")
                .attr("stroke" , "red")
                .attr("stroke-width" , 2);

        var x = d3.scale.linear().range([0, 1000]);
        var y = d3.scale.linear().range([0, 1000]);

        var xAxis = d3.svg.axis().scale(x)
                .orient("bottom").ticks(5);

        var yAxis = d3.svg.axis().scale(y)
                .orient("left").ticks(5);

       svgContainer.append('g')
                .attr("class", "axis")
                .call(xAxis);

        svgContainer.append('g')
                .attr("class", "axis")
                .call(yAxis);

    </script>

</body>

</html>

fiddle :http://jsfiddle.net/zzz8svuq/1/

为什么会出现这些问题?

最佳答案

设置方向只会影响标签相对于轴线的位置,D3 不会自动为您在 Canvas 上定位轴。通常完成此操作的方法是设置轴的边距并相应地偏移容器:

svgContainer.append('g')
            .attr("class", "axis")
            .attr("transform", "translate(" + margin + "," + (1000 - margin) + ")")
            .call(xAxis);

svgContainer.append('g')
            .attr("class", "axis")
            .attr("transform", "translate(" + margin + ",0)")
            .call(yAxis);

完整演示 here .

关于javascript - 轴不显示和对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25850362/

相关文章:

javascript - 访问位于 .on() 方法内部的变量的值

javascript - 如何使用 D3.js 在 HTML 元素中创建换行符

javascript - 根据鼠标坐标拖放线

python - d3 不在 python Flask 脚本中加载 tsv 数据

javascript - exit() 上的 D3 转换

javascript - 将外部 SVG 加载到 SVG 中

javascript - 在 document.GetElementByID ('input' ).value = 'data[0]' 期间 DecodeForHTML,使用动态数组数据

javascript - d3js 树方 block

javascript - 如何动态改变d3 map 上一个国家的颜色

javascript - 文件正在自动提交