Keen.Dataviz.prototype.colorMapping = function(obj){
  if (!arguments.length) return this.view.attributes.colorMapping;
  var self = this;
  self.view.attributes.colorMapping = {};
  _each(obj, function(prop, key){
    self.view.attributes.colorMapping[key] = (prop? prop.trim() : null);
  });
  _runColorMapping.call(self);
  return self;
};

function _runColorMapping(){
  var self = this,
      schema = this.dataset.schema,
      data = this.dataset.output(),
      colorSet = this.colors(),
      colorMap = this.colorMapping();

  if (colorMap) {
    // Map to selected index
    if (schema.select && data[0].length == 2) {
      _each(data, function(row, i){
        if (i > 0 && colorMap[String(row[0])]) {
          colorSet.splice(i-1, 0, colorMap[row[0]]);
        }
      });
    }
    // Map to unpacked labels
    if (schema.unpack) {
      _each(data[0], function(cell, i){
        if (i > 0 && colorMap[String(cell)]) {
          colorSet.splice(i-1, 0, colorMap[cell]);
        }
      });
    }
    self.colors(colorSet);
  }
}

@@ -525,16 +525,50 @@
 apping()
+,%0A      dt = this.dataType() %7C%7C %22%22
 ;%0A%0A  if 
@@ -584,43 +584,52 @@
 ) %7B%0A
+%0A
     
-// Map to selected index%0A    if
+if (dt.indexOf(%22chronological%22) %3E -1 %7C%7C
  (sc
@@ -637,14 +637,14 @@
 ema.
-select
+unpack
  && 
@@ -662,13 +662,13 @@
 gth 
-==
+%3E
  2)
+)
  %7B%0A 
@@ -682,16 +682,19 @@
 ach(data
+%5B0%5D
 , functi
@@ -696,19 +696,20 @@
 unction(
-row
+cell
 , i)%7B%0A  
@@ -743,22 +743,64 @@
 %5BString(
-row%5B0%5D
+cell)%5D && colorSet%5Bi-1%5D !== colorMap%5BString(cell
 )%5D) %7B%0A  
@@ -844,14 +844,20 @@
 Map%5B
-row%5B0%5D
+String(cell)
 %5D);%0A
@@ -892,63 +892,75 @@
   //
- Map to unpacked labels%0A    if (schema.unpack) %7B%0A  
+else if (schema.select && data%5B0%5D.length === 2) %7B%0A    else %7B%0A
     
+  
 _eac
@@ -957,35 +957,32 @@
       _each(data
-%5B0%5D
 , function(cell,
@@ -968,36 +968,35 @@
 (data, function(
-cell
+row
 , i)%7B%0A        if
@@ -1014,37 +1014,77 @@
 colorMap%5BString(
-cell)
+row%5B0%5D)%5D && colorSet%5Bi-1%5D !== colorMap%5Brow%5B0%5D
 %5D) %7B%0A          c
@@ -1115,20 +1115,22 @@
 olorMap%5B
-cell
+row%5B0%5D
 %5D);%0A    

Update colorMapping to avoid inserting colors for subsequent calls