javascript - 如何使用 d3.js 在 X 轴上添加间隔?

标签 javascript d3.js

我想要得到 10 的间隔,从 0 开始一直到 50。但是我得到的间隔是 5。

这是代码

<!DOCTYPE html>
<html>
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.12/d3.min.js"></script>
</head>
<body>
    <script>
        var xAxis = d3.svg.axis();
        var axisScale = d3.scale.linear()
                   .domain([0,100])
                   .range([0,100]);
        var xAxis = d3.svg.axis()
                      .scale(axisScale);
        typeof(xAxis);
        var svgContainer = d3.select("body").append("svg")
                                  .attr("width", 700)
                                  .attr("height", 100);

        //Create the Scale we will use for the Axis
        var axisScale = d3.scale.linear()
                      .domain([0, 50])
                      .range([0, 400]);
        //Create the Axis
        var xAxis = d3.svg.axis()
              .scale(axisScale);
        //Create a group Element for the Axis elements and call the xAxis function
        var xAxisGroup = svgContainer.append("g")
                                    .call(xAxis);
    </script>
</body>

任何形式的帮助将不胜感激。谢谢。

最佳答案

指定 D3 轴中的值的最安全方法是使用 axis.tickValues。对于您的情况:

.tickValues(d3.range(axisScale.domain()[0], axisScale.domain()[1] + 10, 10));

这是经过更改的代码:

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

var axisScale = d3.scale.linear()
  .domain([0, 50])
  .range([0, 400]);
var xAxis = d3.svg.axis()
  .scale(axisScale)
  .tickValues(d3.range(axisScale.domain()[0], axisScale.domain()[1] + 10, 10));

var xAxisGroup = svgContainer.append("g")
  .attr("transform", "translate(20,50)")
  .call(xAxis);
path,
line {
  fill: none;
  stroke: black;
  shape-rendering: crispEdges;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.12/d3.min.js"></script>

关于javascript - 如何使用 d3.js 在 X 轴上添加间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47887319/

相关文章:

javascript - react -dom.development.js :55 Uncaught Invariant Violation: Objects are not valid as a React child (found: object with keys

canvas - 在基于 Canvas 的 D3 地球仪上显示投影转换的文本

javascript - 使用函数返回一系列笔画颜色

javascript - Canvas 的 ToDataURL (JavaScript) 在通过 PHP 上传到服务器后创建损坏的 PNG 文件

javascript - 如何在页面刷新时删除 key 为某个字符 "abc"的所有 session 存储?

javascript - Wtf IE7 - 使用 setTimeout 的 AJAX 调用

javascript - 如何理解 `f(array[i], i, array)`源代码中的 `d3.min()`?

javascript - D3 中的百分比转换似乎不起作用

javascript - D3 v5 变焦口吃

javascript - 自定义街景 map 上的响应式叠加 div