如何仅显示在c3js图表中点击图例数据?

时间:2016-02-09 02:53:06

标签: javascript c3.js

我有一个包含多个数据的折线图。以下是我的图表示例。

legend

如果我在图表上点击该图例,通常会自动显示/隐藏图例数据。

但是我在这样的传奇中添加了一个函数,

legend: {
        position: 'right',
        item: {
                onclick: function (d) { 
                            console.log("onclick", d); 
                            show(d); //when I click legend show some data
                }
            }
},

如果我在图表上点击该图例,我不会自动显示/隐藏。但它对我来说并不重要。

而不是这个,我想只显示在图表中点击图例数据。如果我点击data1图例,我只想在图表中显示data1行,并在图表中隐藏另一个data2data3data4行。

但是,我不知道该怎么做。我非常感谢任何建议。

2 个答案:

答案 0 :(得分:2)

现在,我可以解决我的问题。这是代码。

legend: {
        position: 'right',
        item: {
                onclick: function (d) { 
                        console.log("onclick", d); //data1
                        show(d); //when I click legend show some data
                        chart.hide();
                        chart.show(d);
                }
            }
},

首先,我使用chart.hide()。此功能将隐藏图表上的所有数据。

之后,我使用chart.show(d),它只显示用户点击的数据,因为我添加了用户点击图例作为参数。

  

注意:show(d)chart.show(d)无关。只是一个功能   我为自己的需要而创造。

答案 1 :(得分:0)

对于那些像我在寻求从图例点击集中关注单个系列的方法(我习惯于双击执行此操作)的过程中跌跌撞撞的人来说,似乎c3已添加使用alt-click专注于单个图例项的功能。参见提交here。事实证明,这在billboard.js中也是有效的,它是c3的分支。