1

我在我的 X 轴上只显示某些日期,我正在使用以下tickValues函数从我的“dataPop”数组中选择这些日期:

xAxisPop.tickValues([dataPop[0].date, dataPop[20].date, dataPop[40].date]) 

但是,我想只显示年份dataPop[20].datedataPop[40].date不是世纪,例如,1980 为 80。

我有一个变量“formatDate”,它只显示年份而不是世纪:

formatDate = d3.time.format("%y")

但是如何在 tickValues 函数中将formatDate 应用于dataPop[20].date, ?dataPop[40].date

另外,仅供参考。我的日期目前是字符串...所以我想我应该使用不同的 D3 格式化方法来格式化字符串,而不是在我的 formatDate 函数中使用 d3.time.format ......对吗?还是我应该先将日期从字符串更改为日期,然后运行 ​​formatDate 函数?

非常感谢

4

1 回答 1

0

您会将格式化程序传递给xAxisPop.tickFormat. 任何 d3 文本格式化选项tickFormat都将常规 JavaScript 函数作为参数。 d3.time.format只是构造常用方法的辅助方法。

在您的情况下,由于您的日期只是字符串,我建议您只编写自己的格式化函数,也许:

function formatTwoDigitYear(d) { return d.substr(2,2); }

话虽如此,通过尽早将文本年份转换为日期,您可能会看到许多优势。

于 2013-11-12T14:00:41.457 回答