With stimulation from Ethan Jewett - solving my own question:
Store the full, unfiltered grouped dimension as a static object (found that a hash works best)
First - grab the static group prior to filtering
I9_WholeObjGroup = I9_WholeGroup.top(Infinity);
Then - to make accessing the keys and values easier:
var I9_hash = {};
I9_WholeObjGroup.forEach( function(p,i) {
I9_hash[p.key] = p.value
})
Finally, the I9_hash is used in the stack function (or any other place its needed)
.stack(I9_WholeGroup, "Total Items",function(d) {
if(d.value > 0 ){ //only add the stacked data to filtered bars that have data.
var id = d.key
return I9_hash[id] - d.value; //only add the difference between the filter and totals
}
})
The beauty of stack is that one can add any numeric data - constants, variables based on existing unfiltered data, or even a constant - filtered data (for stacked percentage plots for example)