anchor.diff:      var g = svg.append("g");
       g.attr("transform", "translate(${margin["left"]},${margin["top"]})");
       
  -    if (is_stacked) {
  -      List last_series_total = [];
  -      for (int i = 0; i < _data.first.length; i += 1) {
  -        last_series_total.add(0);
  -      }
  -      for (List series in _data) {
  -        int i = 0;
  -        for (Map d in series) {
  -          num v = last_series_total[i];
  -          d['stack_start'] = v;
  -          v += d['value'];
  -          d['stack_end'] = v;
  -          last_series_total[i] = v;
  -          i += 1;
  -        }
  -      }
  +    List last_series_total = [];
  +    for (int i = 0; i < _data.first.length; i += 1) {
  +      last_series_total.add(0);
  +    }
  +    int series_index = 0;
  +    for (List series in _data) {
  +      int i = 0;
  +      for (Map d in series) {
  +        num v = last_series_total[i];
  +        d['series_index'] = series_index;
  +        d['stack_start'] = v;
  +        v += d['value'];
  +        d['stack_end'] = v;
  +        last_series_total[i] = v;
  +        i += 1;
  +      }
  +      
  +      series_index += 1;
       }
       
       var series1 = _data[0];
  
positive.code:        .enter;
  
        Selection rect = bar.append("rect");
        rect
           .attr("class", "bar${index}");
        rect
           .attrFunc("x", (d,i) { return x(d["x"]); });
        rect
           .attr("width", x.rangeBand);
        
        rect
           .attrFunc("y", (d,i) { return y(d["stack_end"]); });
        rect
           .attrFunc("height", (d,i) { return y(d["stack_start"]) - y(d["stack_end"]); });
        
        rect.style.fill = (Object d, int i) => "#${(color((d as Map)["y"]) as int).toRadixString(16)}";
        rects.add(rect);
  
negative.code:     renderLegend($elmt, _data, color);
  
      if (popoverContentFunc != null) {
        _ColumnPopover hover = new _ColumnPopover($elmt, width, height, margin, x, y, is_stacked, bar_width);
        hover.popoverContentFunc = popoverContentFunc;
            
        for (Selection rect in rects) {
  