gpt4 book ai didi

d3.js - 刻度显示中的 D3v4 时间刻度轴错误

转载 作者:行者123 更新时间:2023-12-02 14:19:31 25 4
gpt4 key购买 nike

我实际上正在试验 D3 v4,并且在时间轴上的刻度显示方面遇到问题。

Here is the difference between v3 and v4 display

我尝试转置的 v3 代码如下

var x = d3.time.scale().range([0, width]);
var xAxis = d3.svg.axis().scale(x).orient("bottom").ticks(6);
x.domain(d3.extent(data.map(function(d) { return d.date; })));

gXAxis.call(xAxis);

我制作的 v4 代码是这样的

import {scaleTime, scaleLinear} from 'd3-scale';
import {axisBottom, axisLeft} from 'd3-axis';
import {select} from 'd3-selection';
import {extent} from 'd3-array';


let x = scaleTime().range([0, width])
.domain(extent(data.map(function(d) { return d.date; })));

let xAxis = axisBottom().scale(x).ticks(6);

gXAxis.call(xAxis);

有人知道我的错误吗?我猜想 v4 API 的用法是错误的,但很难找到有关此 alpha 版本的文档。

谢谢

最佳答案

关键是这一行:

let xAxis = axisBottom().scale(x).ticks(6);

尝试像这样改变:

let xAxis = axisBottom(x).ticks(6);

有关完整的工作示例,请参阅 - jsFiddle

编辑

改进了上面的 js fiddle 以包括格式。

下面来自 jsFiddle 的片段:

let x = d3
.scaleTime()
.range([0, totalWidth])
.domain(d3.extent(data));

let xAxis = d3
.axisBottom(x)
.ticks(d3.timeDay, 1)
.tickFormat(d3.timeFormat("%a %d"));

关于d3.js - 刻度显示中的 D3v4 时间刻度轴错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36999574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com