【问题标题】:dc.js not displaying the y-axisdc.js 不显示 y 轴
【发布时间】:2019-02-26 06:17:09
【问题描述】:

我有一组数据,我想在折线图上呈现频率

数据解析

var volumeChart = dc.barChart('#monthly-volume-chart');
var dateFormatSpecifier = '%Y-%m-%dT%H:%M:%S.000Z';
    var dateFormat = d3.timeFormat(dateFormatSpecifier);
    var dateFormatParser = d3.timeParse(dateFormatSpecifier);
    var numberFormat = d3.format('.2f');

    data.forEach(function (d) {
        d.dd = dateFormatParser(d.timestamp);
        d.minute = d3.timeMinute(d.dd)
        //coerce to number with a +
    });

维度分组

var freqByMins = ndx.dimension(function (d) {
    return d.minute;
});
var aa = freqByMins.group()
console.log(aa.all())
var freqByMinsGroup = aa.reduceCount(function (d) {
    return d.minute;
});
console.log(freqByMinsGroup.all())

查看freqByMinsGroup.all()我得到以下数据

0: {key: Thu Feb 21 2019 05:29:00 GMT+0800 (Singapore Standard Time), value: 2}
1: {key: Thu Feb 21 2019 05:30:00 GMT+0800 (Singapore Standard Time), value: 5}
2: {key: Thu Feb 21 2019 05:31:00 GMT+0800 (Singapore Standard Time), value: 6}
3: {key: Thu Feb 21 2019 05:32:00 GMT+0800 (Singapore Standard Time), value: 3}
4: {key: Thu Feb 21 2019 05:33:00 GMT+0800 (Singapore Standard Time), value: 1}
5: {key: Thu Feb 21 2019 05:34:00 GMT+0800 (Singapore Standard Time), value: 1}
6: {key: Thu Feb 21 2019 05:35:00 GMT+0800 (Singapore Standard Time), value: 3}
7: {key: Thu Feb 21 2019 05:36:00 GMT+0800 (Singapore Standard Time), value: 4}
8: {key: Thu Feb 21 2019 05:38:00 GMT+0800 (Singapore Standard Time), value: 4}
9: {key: Thu Feb 21 2019 05:39:00 GMT+0800 (Singapore Standard Time), value: 7}
length: 10

渲染图表

 volumeChart.width(960)
    .height(100)
    .margins({top: 10, right: 10, bottom: 20, left: 40})
    .dimension(freqByMins)
    .group(freqByMinsGroup)
    .transitionDuration(500)
    .elasticY(true)

    .x(d3.scaleTime().domain([new Date(2019, 2, 21, 5, 29, 0), new Date(2019, 2, 21, 5, 40, 0)]))
    .xAxis();

但是,我的交叉过滤器图表不呈现任何 y 轴。

附上一张图片

【问题讨论】:

  • 再一次,仍然没有足够的信息来重现问题。当我将您的代码放在另一个问题中时,它显示了 Y 轴。您能否尝试 fork this fiddle 并添加您的代码?
  • @Gordon,我已经解决了。这是我对 html 的错误。我在下面的答案中给出了我的更正。感谢您的帮助。我无法做一个 jsfiddle,因为我似乎无法在其中找到 dc.js
  • 太棒了,感谢您的跟进。我的猜测是一些错误的 CSS,因为我也看不到问题。
  • @Gordon 这与 dc.datatables.js 中的 stock.js 示例相同。我一直在玩这个。我没有改变任何CSS。你的演示也有同样的问题,所以我假设这是预期的行为?
  • 啊,它是故意隐藏在 CSS 中的,因为它在用作范围图时看起来更好看,see here

标签: d3.js dc.js crossfilter


【解决方案1】:

对于任何可能正在查看此问题的人,

错误出现在html中。

<div class="row">
    <div id="monthly-move-chart">
        <strong>Monthly Index Abs Move & Volume/500,000 Chart</strong>
        <span class="reset" style="display: none;">range: <span class="filter"></span></span>
        <a class="reset" href="javascript:moveChart.filterAll();volumeChart.filterAll();dc.redrawAll();"
           style="display: none;">reset</a>

        <div class="clearfix"></div>
    </div>
</div>

当我使用另一个索引时

<div id="quarter-chart">
        <strong>Quarters</strong>
        <a class="reset" href="javascript:quarterChart.filterAll();dc.redrawAll();" style="display: none;">reset</a>

        <div class="clearfix"></div>
    </div>

成功了。我猜这是因为它依赖于另一个图表。我实际上是在使用来自https://dc-js.github.io/dc.datatables.js/ 的示例,当我没有真正检查 html 时,这可能会导致一些有趣的错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    相关资源
    最近更新 更多