anchor.diff:                                          .on("mouseout", function (d) {
                                               removePopovers();
                                           });
  -                                //axes
  +                                rect.transition()
  +                                        .delay(function (d, i) {
  +                                            return i * 10;
  +                                        })
  +                                        .attr("x", function (d) {
  +                                            return xScale(d.x0);
  +                                        })
  +                                        .attr("width", function (d) {
  +                                            return xScale((d.x1) - (d.x0));
  +                                        });
  +                                d3.selectAll("input").on("change", change);
  +                                var timeout = setTimeout(function () {
  +                                    d3.select("input[value=\"grouped\"]").property("checked", true).each(change);
  +                                }, 2000);
  +
  +                                function change() {
  +                                    clearTimeout(timeout);
  +                                    if (this.value === "grouped") transitionGrouped();
  +                                    else transitionStacked();
  +                                }
  +
  +                                function transitionGrouped() {
  +                                    xScale.domain = ([0, xGroupMax]);
  +                                    rect.transition()
  +                                            .duration(500)
  +                                            .delay(function (d, i) {
  +                                                return i * 10;
  +                                            })
  +                                            .attr("width", function (d) {
  +                                                return xScale((d.x1) - (d.x0));
  +                                            })
  +                                            .transition()
  +                                            .attr("y", function (d) {
  +                                                return y1Scale(d.label);
  +                                            })
  +                                            .attr("x", 0)
  +                                            .attr("height", y1Scale.rangeBand())
  +                                }
  +
  +                                function transitionStacked() {
  +                                    xScale.domain = ([0, xStackMax]);
  +                                    rect.transition()
  +                                            .duration(500)
  +                                            .delay(function (d, i) {
  +                                                return i * 10;
  +                                            })
  +                                            .attr("x", function (d) {
  +                                                return xScale(d.x0);
  +                                            })
  +                                            .transition()
  +                                            .attr("y", function (d) {
  +                                                return y0Scale(d.label);
  +                                            })
  +                                            .attr("height", y0Scale.rangeBand())
  +                                }
  +
                                   //axes
                                   var xAxis = d3.svg.axis()
                                           .scale(xScale)
                                           .orient("bottom");
                                   var yAxis = d3.svg.axis()
  -                                        .scale(yScale)
  +                                        .scale(y0Scale)
                                           .orient("left");
                                   svg.append("g")
                                           .attr("class", "y axis")
  
positive.code:                                     }
                                      camp.mapping = [{
                                          name: camp.name,
                                          label: 'Tuition or Wage Garnishing',
                                          x0: x0,
                                          x1: x0 += +camp.cost
                                      }, {
                                          name: camp.name,
                                          label: 'Financing Cost',
                                          x0: +camp.cost,
                                          x1: camp.finance ? x0 += +Math.floor(camp.cost * .09519) : 0
                                      }, {
                                          name: camp.name,
                                          label: 'Housing Cost',
                                          x0: camp.finance ? +Math.floor(camp.cost * 1.09519) : camp.cost,
                                          x1: x0 += weeklyHousing * camp.weeks
                                      }, {
                                          name: camp.name,
                                          label: 'Opportunity Cost at Current Wage',
                                          x0: camp.finance ? +(Math.floor(camp.cost * 1.09519) + weeklyHousing * camp.weeks) : +camp.cost + weeklyHousing * camp.weeks,
                                          x1: x0 += +(Math.floor(camp.weeks * lastYearincome / 50))
                                      }];
                                      camp.total = camp.mapping[camp.mapping.length - 1].x1;
                                  });
                                  bootcamps.sort(function(a, b) { return a.total - b.total; });
                                  var margin = {
                                              top: 30,
                                              right: 60,
  
negative.code:                                 //make next step visible
                                  $('#four').css({opacity: '1'});
                                  <!--Prep the data for D3 -->
                                  var categoryNames = ['Opportunity Cost at Current Wage', 'Financing Cost', 'Housing Cost', 'Tuition / Wage Garnishing'];
                                  bootcamps.forEach(function (camp) {
                                      var x0 = 0;
                                      if (camp.cities.indexOf(city) > -1) {
  