如何在c3.js折线图中仅突出显示一个数据点?

时间:2017-04-17 09:26:55

标签: javascript css d3.js c3.js

将点数显示为false会隐藏所有data points 但是,如果我想隐藏除一个数据点以外的所有数据,该怎么办。

例如,



var chart = c3.generate({
    data: {
        columns: [
            ['data1', 30, 200, 100, 400, 150, 250],
            ['data2', 50, 20, 10, 40, 15, 25]
        ]
    }
});




在上面的折线图中,如何突出显示值为100的数据点并隐藏其他所有数据点?

1 个答案:

答案 0 :(得分:3)

在C3中,这些圈子有一个名为c3-circle的类。因此,使用D3选择,您可以根据绑定数据设置不透明度:

var circles = d3.selectAll(".c3-circle")
    .style("opacity", function(d){
        return d.value === 100 ? 1 : 0;
    })

因此,只有与100对应的圆圈可见。

以下是演示:



var chart = c3.generate({
    data: {
        columns: [
            ['data1', 30, 200, 100, 400, 150, 250],
            ['data2', 50, 20, 10, 40, 15, 25]
        ]
    }
});

var circles = d3.selectAll(".c3-circle").style("opacity", function(d){
	return d.value === 100 ? 1 : 0;
})

<script src="https://d3js.org/d3.v3.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://rawgit.com/masayuki0812/c3/master/c3.css">
<script src="https://rawgit.com/masayuki0812/c3/master/c3.js"></script>
<div id="chart"></div>
&#13;
&#13;
&#13;