Javascript D3.js x轴(以天为单位)

Javascript D3.js x轴(以天为单位),javascript,d3.js,Javascript,D3.js,我是d3新手,现在我正在尝试创建一个x轴,在两个日期之间绘制,并在x轴上打印日期。我当前正在通过JavaScript对象data.startdata.end加载日期值。data.start获取今天的日期,data.end从日期选择器输入中获取其值(在下面的代码中,它们获得相同的值,但有效)。它们正在按它们应该的方式工作,如果我将它们记录在控制台日志中,我将以字符串的形式获取有效日期。现在,如果我尝试在这两个字符串日期之间创建一个x轴.scaleTime(),那么x轴不会输出任何东西。另一方面,如

我是d3新手,现在我正在尝试创建一个x轴,在两个日期之间绘制,并在x轴上打印日期。我当前正在通过JavaScript对象
data.start
data.end
加载日期值。
data.start
获取今天的日期,
data.end
从日期选择器输入中获取其值(在下面的代码中,它们获得相同的值,但有效)。它们正在按它们应该的方式工作,如果我将它们记录在控制台日志中,我将以字符串的形式获取有效日期。现在,如果我尝试在这两个字符串日期之间创建一个x轴
.scaleTime()
,那么x轴不会输出任何东西。另一方面,如果我使用JavaScript日期对象作为
.domain
中的开始日期和结束日期,我会得到一个输出。这里是一些示例代码,当然不是我的整个
.js
文件,而是“应该”重要的东西


x轴不输出任何东西是什么意思?axis渲染代码(
d3.选择(…).附加('g')。调用(axis)
?我想您可能会混淆术语“缩放”和“轴”比例是一个函数,它可以从数据域(本例为时间)转换为输出范围(本例为屏幕像素)。您可以使用比例绘制轴,这是该比例的视觉表示。以下是d3轴的文档:
function getDate() {
    const dateObj = new Date();

    let d = String(dateObj.getDate()).padStart(2, '0');
    let m = String(dateObj.getMonth() + 1).padStart(2, '0');
    let y = dateObj.getFullYear();

    return y + '-' + m + '-' + d;
}

let data = {
    start: getDate(),
    end: getDate(),
    currency: currDropdown,
    granularity: 86400
};

const xScale = d3
   .scaleTime()
   .domain([data.start, data.end])
   .range([0, width - 100]);