javascript - D3 条形图(按日期和上下文刷)

标签 javascript d3.js charts

我有一个 D3 条形图,X 轴上带有日期/时间。现在运行良好,但我想在其下方添加一个较小的可刷图表,但由于我必须进行一些日期操作才能使条形图位于 X 轴刻度线的中心,所以遇到了麻烦 - see this post for details on that

画笔似乎没有正确计算 X 轴日期范围。

这里是x域定义和画笔函数。 JSFiddle for the full code.

main_x.domain([
    d3.min(data.result, function(d) { return d.date.setDate(d.date.getDate() - 1); }),                  
    d3.max(data.result, function(d) { return d.date.setDate(d.date.getDate() + 2); })
]);

function brushed() {

    // I thought that re-defining the x domain without the date manipulations might work, but I 
    // was getting some odd results
    //main_x.domain(d3.extent(data.result, function(d) { return d.date; }));

    main_x.domain(brush.empty() ? main_x.domain() : brush.extent());
    console.log(brush.extent());

    bar.selectAll("rect")
        .attr("width", function(d) { return main_width/len; })
        .attr("x", function(d) { return main_x(d.date) - (main_width/len)/2; });

    main.select(".x.axis").call(main_xAxis);
}

最佳答案

问题在于您对焦点图表和上下文图表使用相同的比例。一旦您更改它,选择的范围就会更改(大小相同,但基础比例不同)。要修复,请使用两种不同的比例。

我已经做到了here ,引入 mini_x 作为上下文图表的 x 比例。

关于javascript - D3 条形图(按日期和上下文刷),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23016410/

相关文章:

javascript - 使用 jquery 和 sqlite/json 的静态产品页面

javascript - 更改数据时如何更新子元素?

javascript - crossfilter.js 和 dc.js 更新回调组更改图表

javascript - 保存到离线而不使用 shaka 播放器创建播放器对象

javascript - React JS 表单验证逻辑位于子级还是父级?

javascript - D3.js 无法将背景图像添加到矩形

javascript - 带有移动平均线的 HTML5/JS 图表

excel - 在 Excel 折线图中隐藏数据点

javascript - 如何始终在 Chart.js 2 上显示工具提示

javascript - 如何在 JSFiddle 上使用 CommonJS 模块?