d3.js时间刻度轴

时间:2018-03-27 12:55:50

标签: javascript d3.js

我有一个使用d3.js创建的散点图,我试图添加一个x轴,其范围从上午12点到上午12点,即跨越24小时。图表的性质是数据会根据用户输入而改变,但是我仍然会收到相同的错误,但是我尝试追加轴。

我收到错误: d3.v4.min.js:2错误:属性转换:预期数量, "翻译(NaN时,0)"

这是我的代码,我试图仅包含对我的查询很重要的代码。 (timeLog是我的数据数组)

var parseTime = d3.utcParse("%H:%M");
var midnight = parseTime("00:00");
var height = $("#scatter").height();
var width = $("#scatter").width();

var max = Math.max(timeLog);
var min = Math.min(timeLog);

var yScale = d3.scale.linear()
 .domain([0,d3.max(timeLog)])
 .range([0,height]);

var xScale = d3.scaleBand()
 .domain(d3.range(0,timeLog.length))
 .range([0,width]);

d3.select("#scatter").append('svg')
    .attr('width',width)
    .attr('height',height)
    .style('background', '#f4f4f4')
    .selectAll('circle')
        .data(timeLog)
        .enter().append('circle')
        .style('fill', 'black')
        .style('stroke','none')
        .attr('cx',function(d, i){
            return xScale(i);
            })
        .attr('cy',function(d){
            return height - yScale(d);
        })
        .attr('r',2);

var hScale = d3.scaleUtc()
 .domain([midnight,d3.time.day.offset(midnight,1)])
 .range([0,width]);

var xAxis = d3.axisBottom()
 .scale(hScale)
 .tickFormat(d3.time.format.utc("%I %p"))

var xGuide = d3.select('svg')
 .append('g')
  .attr("class", "axis axis--x")
    xAxis(xGuide)
    xGuide.attr('transform','translate(0,' + height + ')')
    xGuide.selectAll('path')
        .style('fill','black')
        .style('stroke','black')
    xGuide.selectAll('line')
        .style('stroke','black')

我是d3.js的新手,并且我正在尝试自学基础知识,所以任何有助于我找出错误原因的反馈都会非常感激。

修改 在发现我的一些语法过时并更新了上面的代码后,我做了一些更改,我现在没有收到任何错误消息,但是轴仍然没有显示。是否有一些我遗漏的属性? 感谢您的任何反馈。

0 个答案:

没有答案