Javascript d3.JS X-axis正在将数千年从

Javascript d3.JS X-axis正在将数千年从,javascript,d3.js,Javascript,D3.js,我正在完成一个使用D3.JS绘制美国GDP的项目。不幸的是,对于我的X轴来说,D3.JS将我的刻度格式化为950980015,而不是1950、1980、2015等等。我花了45分钟试图用谷歌搜索答案。我尝试过的一个理论是在D3.JS中使用.format选项,但我无法找到这样的解决方案。我也尝试过编辑我的输入数据,但也没有产生效果。如果有人能帮我把我在X-asix的工作年限改成正确的格式,那将对我大有帮助 let-apirl=”https://raw.githubusercontent.com/

我正在完成一个使用D3.JS绘制美国GDP的项目。不幸的是,对于我的X轴来说,D3.JS将我的刻度格式化为950980015,而不是1950、1980、2015等等。我花了45分钟试图用谷歌搜索答案。我尝试过的一个理论是在D3.JS中使用.format选项,但我无法找到这样的解决方案。我也尝试过编辑我的输入数据,但也没有产生效果。如果有人能帮我把我在X-asix的工作年限改成正确的格式,那将对我大有帮助

let-apirl=”https://raw.githubusercontent.com/FreeCodeCamp/ProjectReferenceData/master/GDP-data.json"
GDPGraph()
函数GDPGraph(){
获取(APIRL)
.then(response=>response.json())
。然后(数据=>{
//document.getElementById('GDP').innerHTML=JSON.stringify(data.data);
变量高度=document.documentElement.clientHeight*.8,
保证金=60,
宽度=document.documentElement.clientWidth-边距*2;
var GDPbyQuarter=[],
年季度=[]
标签=[]、[]、[]
年份=[]
const svg=d3.select(document.getElementById('GDP'))
.append(“svg”)
.attr(“宽度”,宽度)
.attr(“高度”,高度);
对于(i=0;i高度-yScale(d)-裕度
.attr('class','bar')
.style('height',(d)=>yScale(d)+'px')
.style('宽度',((1/(GDPbyQuarter.长度+边距)*宽度)+'px'))
.append('标题')
.attr('class','title')
.text((d,i)=>标签[i])
常数xAxis=d3.axisBottom(年尺度);
常数yAxis=d3.轴左(yScaleReversed);
svg.append(“g”)
.呼叫(xAxis)
.attr(“变换”、“平移(0)”+(高度-边距)+”)
.attr(“位置”、“绝对”);
append('g')
.attr('transform','translate('+margin+',0'))
.attr('位置','绝对')
.呼叫(yAxis);
})
}
.bar{
填充物:红色;
背景色:红色;
}
.bar:悬停{
填充:蓝色;
边框:20px纯蓝;
}
头衔{
背景颜色:黄色;
颜色:紫色;
}
#国内生产总值{
位置:相对位置;
}
#国内生产总值>*{
位置:绝对位置;
}
g{
位置:绝对位置;
}
h1,h2,h3{
字体系列:Roboto,无衬线;
}

文件
按季度划分的美国GDP
免费编码放大器

您将年份作为一个简单的数字提供给时间刻度,而不是作为表示该年份的日期对象。一个选项是将年份解析为日期对象:
var parse=d3.timeParse(“%Y”)
,然后使用此设置时间刻度的域:
.domain([parse(minDate),parse(maxDate)])
您将年份作为简单数字提供给时间刻度,而不是作为表示该年份的日期对象。一个选项是将年份解析为日期对象:
var parse=d3.timeParse(“%Y”)
,然后使用此设置时间刻度的域:
.domain([parse(minDate),parse(maxDate)])