 
     for d, i in p.values
 
-      mod = if vars.axes.stacked then 0 else x(i % bars)
+      if vars.axes.stacked
+        mod = 0
+      else if vars[discrete].persist.position.value
+        mod = x fetchValue(vars, d, vars.id.value)
+      else
+        mod = x(i % bars)
+
       oppMethod = vars[opposite]
 
       if vars.axes.stacked

fetchValue = require "../../core/fetch/value.coffee"
graph      = require "./helpers/graph/draw.coffee"
nest       = require "./helpers/graph/nest.coffee"

      maxSize /= divisions
      offset   = space/2 - maxSize/2 - padding

      x = d3.scale.ordinal()
        .domain [0, divisions-1]
        .range [-offset, offset]

