如何在D3中生成每年的刻度?
以下代码似乎适用于我的数据跨越数年,但它显示数月只有几年的数月(比如3年)?
var xAxisScale = d3.scaleTime()
.domain([new Date(min, 0, 1, 0), new Date(max, 0, 1, 0)])
.rangeRound([100,width])
xAxisScale.ticks(d3.timeYear.every(1));
Run Code Online (Sandbox Code Playgroud)
您可以tickFormat
在轴生成器中明确设置刻度格式::
xAxis.tickFormat(d3.timeFormat("%Y"));
Run Code Online (Sandbox Code Playgroud)
检查片段,第一个轴从2000年到2016年,第二个轴从2014年到2016年.第三个是相同的,但ticks(d3.timeYear)
每年只保留1个刻度:
var width = 400, height = 200;
var svg = d3.select("body")
.append("svg")
.attr("width", width)
.attr("height", height);
var xAxisScale1 = d3.scaleTime()
.domain([new Date(2000, 0, 1), new Date(2016, 0, 1)])
.rangeRound([20,width - 20]);
var xAxisScale2 = d3.scaleTime()
.domain([new Date(2014, 0, 1), new Date(2016, 0, 1, 0)])
.rangeRound([20,width - 20]);
var xAxis1 = d3.axisBottom(xAxisScale1);
var xAxis2 = d3.axisBottom(xAxisScale2).tickFormat(d3.timeFormat("%Y"));
svg.append("g").call(xAxis1);
svg.append("g").attr("transform", "translate(0,40)").call(xAxis2);
svg.append("g").attr("transform", "translate(0,80)").call(xAxis2.ticks(d3.timeYear));
Run Code Online (Sandbox Code Playgroud)
<script src="https://d3js.org/d3.v4.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3706 次 |
最近记录: |