D3.js D3 v5仅在timeParse中使用年份

D3.js D3 v5仅在timeParse中使用年份,d3.js,D3.js,我目前正在使用.dsv方法将csv加载到d3。 csv包含两列:年份和平均价格。 年份列仅为190119021903,不包含月份或日期 year, avg_price 1901, 25.20 1902, 28.30 1903, 19.25 1904, 21.50 d3.dsv import将返回一个字符串,但我想将此信息转换为datetime对象,仅作为“year”,以便将结果绘制为条形图 我已经尝试过在导入时运行下面的程序,但它似乎不起作用 var parseTime=d3。timePars

我目前正在使用.dsv方法将csv加载到d3。 csv包含两列:年份和平均价格。 年份列仅为190119021903,不包含月份或日期

year, avg_price
1901, 25.20
1902, 28.30
1903, 19.25
1904, 21.50
d3.dsv import将返回一个字符串,但我想将此信息转换为datetime对象,仅作为“year”,以便将结果绘制为条形图

我已经尝试过在导入时运行下面的程序,但它似乎不起作用

var parseTime=d3。timeParse%Y

v5是否有好的资源来解释如何将部分日期解析为图表的日期对象? 谢谢。

您可以在函数中使用new Dated.year,0,1将您的第一列转换为javascript日期对象,即每年1月的第一列

注意tsv字符串中的空格

例如:

const csv=`年,平均价格 1901,25.20 1902,28.30 1903,19.25 1904,21.50`; const data=d3.csvParsecsv,d=>{ 年份:新日期+d.year,0,1,, 平均价格:+d.平均价格, }; 常量格式=d3.时间格式“%Y”; constul=d3.selectapp.append'ul'; ul.选择所有'li' .数据 .加入'li' .textd=>“${formattd.year}:${d.avg_price}”;
这仍然会为日期创建一个月和一天。。。不可能只拥有一个带有年份的日期对象吗?基本上,我想自己画一年,但我很难做到。不,一个日期需要一个月和一天。但是,您只能使用d3.scaleLinear而不是d3.scaleTime绘制年份,也可以使用your's welcome在绘图中格式化日期。我已将答案编辑为使用d3.timeFormat“%Y”。