この概念を D3.js に適用するために、flot ( http://www.flotcharts.org/flot/examples/series-toggle/index.html ) でこの例に従っています。
私のデータは次のようになります:
[ { "sourceA" : 28, "sourceB": 25, "sourceC": 20, "date": "29-Apr-13",
"sourceA" : 15, "sourceB": 23, "sourceC": 54, "date": "29-May-13",
"sourceA" : 23, "sourceB": 43, "sourceC": 23, "date": "29-Jun-13",
}]
上記の例のソース コードに従って、チェックボックス ("sourceA"、"sourceB" など) を設定しました。ただし、「plotAccordingToChoices」関数を使用してデータを操作する方法にこだわっています。
つまり、sourceA チェックボックスが選択されている場合、関数はデータを次のように変更する必要があります。
[ { "sourceA" : 28, "date": "29-Apr-13",
"sourceA" : 15, "date": "29-May-13",
"sourceA" : 23, "date": "29-Jun-13",
}]
例のサンプル コード - http://www.flotcharts.org/flot/examples/series-toggle/index.html
// insert checkboxes
var choiceContainer = $("#choices");
$.each(datasets, function(key, val) {
choiceContainer.append("<br/><input type='checkbox' name='" + key +
"' checked='checked' id='id" + key + "'></input>" +
"<label for='id" + key + "'>"
+ val.label + "</label>");
});
choiceContainer.find("input").click(plotAccordingToChoices);
function plotAccordingToChoices() {
var data = [];
choiceContainer.find("input:checked").each(function () {
var key = $(this).attr("name");
if (key && datasets[key]) {
data.push(datasets[key]);
}
});
if (data.length > 0) {
$.plot("#placeholder", data, {
yaxis: {
min: 0
},
xaxis: {
tickDecimals: 0
}
});
}
}
plotAccordingToChoices();