我只在X轴上显示某些日期,而我正在使用tickValues
函数从我的“dataPop”数组中选择这些日期:
xAxisPop.tickValues([dataPop[0].date, dataPop[20].date, dataPop[40].date])
然而,我希望dataPop[20].date
和dataPop[40].date
只显示年份,而不是世纪,例如,1980年为80。
我有一个变量“formatDate”,只显示年份,而不是世纪:
formatDate = d3.time.format("%y")
但是如何在tickValues函数中将formatDate应用于dataPop[20].date
,dataPop[40].date
?
另外,fyi。我的日期目前是字符串...所以我想在我的formatDate函数中使用d3.time.format而不是在格式化字符串时使用不同的D3格式化方法...这是正确的吗?或者我应该首先将日期从字符串更改为日期,然后运行formatDate函数?
非常感谢
答案 0 :(得分:0)
您将格式化程序传递给xAxisPop.tickFormat
。任何d3文本格式选项(如tickFormat
)都会将常规JavaScript函数作为参数。 d3.time.format
只是构建常见方法的辅助方法。
在您的情况下,由于您的日期只是字符串,我建议您只编写自己的格式化功能:
function formatTwoDigitYear(d) { return d.substr(2,2); }
话虽如此,通过尽可能早地将文本年份转换为日期,您可能会看到许多优势。