【问题标题】:C3 / D3 bar chart with horizontal scrollC3 / D3 水平滚动条形图
【发布时间】:2015-02-08 07:04:16
【问题描述】:

我正在创建一个 c3 条形图,其中每个条形代表在给定周内加入计划的人数。数据只是一个对象数组,其中包含 [{week, # of people}, {week, # of people} 等]

理想情况下,我希望图表中显示最近的 6 周,但我希望能够水平滚动查看过去的几周。

我看到了一个答案 (D3.js scrolling bar chart),但在这种情况下,轴在滚动时不可见 - 我想这样做。

任何帮助将不胜感激。

【问题讨论】:

    标签: d3.js scroll c3.js


    【解决方案1】:

    c3.js 允许您制作“子图表”,其本质上类似于您在 Google 财经上看到的股票图表。

    我怀疑您最好让子图表成为您的滚动机制,而不是尝试从 css 实现滚动条。

    c3 子图的一个不错的功能是它允许为子图设置“默认范围”。您可以做的是将范围默认为有限的周数,然后用户可以从那里按照他们认为合适的方式操作子图表滑块/画笔。这是一个简单的实现/虚拟示例:

    axis.x.extent
    http://c3js.org/reference.html

    ...设置子图和缩放的默认范围。

    c3子图
    http://c3js.org/samples/options_subchart.html

    jsfiddle 中的工作示例
    http://jsfiddle.net/y6tns4mt/1/


    HTML

    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <p>My Chart Title</p>
                <div>
                    <div id="my-chart"></div>
                </div>
            </div>
        </div>
    </div>
    

    用于 c3 图表的 JavaScript

    var chart = c3.generate({
        bindto: '#my-chart',
        data: {
            columns: [
                ['people', 30, 200, 100, 400, 150, 250, 40, 50, 70, 80, 90, 100, 17, 47, 51, 141]
            ],
            type: 'bar'
        },
        subchart: {
            show: true
        },
        axis: {
            x: {
                extent: [13, 16]
            }
        },
        tooltip: {
            format: {
                title: function (d) {
                    return 'Week ' + d;
                }
            }
        }
    });
    

    【讨论】:

    • 感谢您的回答 - 这很可能是我最终会实施的。我只是想知道是否有一种方法可以根据视图中的条形图与整体数据语料库来调整 y 轴。
    猜你喜欢
    • 1970-01-01
    • 2021-10-04
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多