Create a dimension using states, create a group, then create a 'fake' group that excludes that state. Pass the fake group into the chart.
Something I knocked up earlier where I wanted to exclude staff with no names:
db.dimensions["staffDimension"] = db.crossStore["tasks"].dimension(function (d) {return d.starting_staff_name;});
var staffGroup = db.dimensions["staffDimension"].group();
var excludedNoNameStaffGroup = {
all:function () {
var g = [];
staffGroup.all().forEach(function(d,i){
if (d.key != '') {g.push(d);}
});
return g;
},
top:function (k) {
var g = [];
staffGroup.top(k).forEach(function(d,i){
if (d.key != '') {g.push(d);}
});
return g;
}
};
var staffRowChart = dc.rowChart("#tasks-chart2");
staffRowChart
.width(db.constants["chartWidth"])
.height(db.constants["chartHeight"])
.margins({top: 20, left: 10, right: 10, bottom: 30})
.dimension(db.dimensions["staffDimension"])
.group(excludedNoNameStaffGroup)
.cap(10)
.elasticX(true)
.label(function (d) {return d.key == ''?'Not Assigned':d.key});
HTH