Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 截断时间轴中的长月份名称_Javascript_D3.js - Fatal编程技术网

Javascript 截断时间轴中的长月份名称

Javascript 截断时间轴中的长月份名称,javascript,d3.js,Javascript,D3.js,我正在尝试解决如何在使用scaleTime数据范围绘制轴时更改数月的格式 我已经能够按预期管理布局,但我希望完整的月份名称被截断。请看下面的例子-我希望“二月”是“二月”。 其他日期都可以 我的axis代码摘要如下: const x = scaleTime() .domain(dateExtent) .rangeRound([marginSize.left, width - marginSize.right]); const xAxis = axisBottom(x)

我正在尝试解决如何在使用scaleTime数据范围绘制轴时更改数月的格式

我已经能够按预期管理布局,但我希望完整的月份名称被截断。请看下面的例子-我希望“二月”是“二月”。 其他日期都可以

我的axis代码摘要如下:

  const x = scaleTime()
    .domain(dateExtent)
    .rangeRound([marginSize.left, width - marginSize.right]);

  const xAxis = axisBottom(x)
    .ticks(timeDay.every(2))
    .tickSizeOuter(0);

有没有一种方法可以为这些日期值提供格式?

最简单、最快的方法就是使用
tickFormat
和所需的说明符,这样所有的记号都将具有相同的结构

但是,假设只希望更改边界标记(对于与相邻标记不匹配的格式,如前所述),则可以在轴生成器创建标记后获取标记并检查其值

例如,带有二月的轴,如您的轴:

const svg=d3.选择(“svg”);
常量scale=d3.scaleTime()
.范围([20580])
.域名([新日期(“2020年1月20日”)、新日期(“2020年2月10日”));
const axis=d3.axisBottom(scale)(svg.append(“g”).attr(“transform”,“translate(0,50)”))

这是我试图控制的特定功能:月份边界设置为
%B
,但它希望它是
%B