如何为日期设置 dc.js x 轴

How to set up dc.js x axis for dates

我有一个包含 2 列的 CSV 文件,第一列有一些日期,第二列有一些值。

如何初始化 x 轴以显示日期?

IMO 解决你的问题包括两部分:

  1. 正在将数据中的日期解析为 dc 可管理格式
  2. 对图表进行编码

要解析日期,您需要在脚本中注入 csv 文件后使用这样的函数:

    var parseDate = d3.time.format.utc("%Y-%m-%dT%H:%M:%S-07:00").parse;

data.forEach(function(d) {
        d.TxnDate = parseDate(d.TxnDate);
    });

请注意,根据您的数据,解析标准可能会有所不同,在这种情况下,请检查此 time formatting article

对于第二部分,这是一个示例图表定义,但在此之前您需要定义两个新变量,它们将用作我们 X 轴的起点和终点。在定义维度和组之后,像这样定义它们:

    var minDate = transactionDate.bottom(1)[0].TxnDate;
var maxDate = transactionDate.top(1)[0].TxnDate;

您的图表代码如下:

timeChart
.width(650)
.height(250)
.transitionDuration(1000)
.brushOn(false)
.dimension(transactionDate) //your dimension created from crossfilter
.group(fakeTxnDateGroup) // your group
.elasticY(true)
.renderHorizontalGridLines(true)
.renderVerticalGridLines(true)
.x(d3.time.scale().domain([minDate,maxDate])) //these are the dates we created before this step so that the scale fits according to our data
.yAxis().tickFormat(d3.format("s"));

希望对您有所帮助。如果没有,请留下 js fiddle。 谢谢!