【问题标题】:D3 tickFormat error stating n.getMonth is not a functionD3 tickFormat 错误说明 n.getMonth 不是函数
【发布时间】:2015-05-06 23:30:18
【问题描述】:

我正在使用 D3 创建一些数据的折线图。我以毫秒为单位传递一个日期,我想以小时和分钟显示它。我尝试将值作为新日期(myDate)的返回值传递给它,这也不起作用。

这是我在运行时遇到的错误。 “未捕获的 TypeError:n.getMonth 不是函数”

我还尝试通过运行新的日期(时间)来转换所有基于毫秒的时间,但没有任何改变。

这是我的图形代码。可变时间是指一组基于毫秒的时间测量值。

    function processData(allText) {
    var allTextLines = allText.split(/\r\n|\n/);
    var headers = allTextLines[0].split(',');
var lines = [];
for(var i =1, arrayLen = allTextLines.length; i<arrayLen; i++) {
    var data = allTextLines[i].split(',');
    if (data.length === headers.length) {
        lines.push({time: Date.parse(data[0]), last: data[1]});
    }
}
var final = []
var d3Formater = d3.time.format("%m/%d/%Y");
for(var i = lines.length-1, base = (lines[lines.length-1].time - 14400001); i>0; i--) {
    if(lines[i].time>base) {

        var temp = new Date(lines[i].time)
        console.log(temp);
        final.push(d3Formater.parse(temp));
    }
}
delete lines;
var xMin = new Date(d3.min(time));
var xMax = new Date(d3.max(time));

var vis = d3.select("#visualization"),
    WIDTH = 1000,
    HEIGHT = 500,
    MARGINS = {
       top: 20,
        right: 20,
        bottom: 20,
        left: 50
    },
    xScale = d3.scale.linear().range([MARGINS.left, WIDTH - MARGINS.right]).domain([xMin, xMax]),
    yScale = d3.scale.linear().range([HEIGHT - MARGINS.top, MARGINS.bottom]).domain([yMin, yMax]),

        xAxis = d3.svg.axis()
            .scale(xScale)
            .tickFormat(d3.time.format("%m-%d")),

        yAxis = d3.svg.axis()
            .scale(yScale);

提前谢谢你。

【问题讨论】:

  • 您需要将日期解析为Date 对象。你是怎么做到的?
  • 好的,那么您从哪里获得time?您需要解析所有日期,而不仅仅是最大值和最小值。
  • 我包含了其余的代码。所有日期均已解析。最大值和最小值刚刚转换回正常的可读符号。他们都需要吗?
  • 数据以带有时间和值的 csv 开头。
  • 您的时间数据在 CSV 中是什么格式的?我的意思是时间可能没有正确解析。

标签: javascript d3.js graph


【解决方案1】:

尝试更改此行:

xScale = d3.scale.linear()....

尝试使用...

xScale = d3.time.scale()....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 2021-11-24
    • 2021-12-29
    • 2014-07-26
    • 1970-01-01
    相关资源
    最近更新 更多