index.html
<!DOCTYPE html>
<meta charset="utf-8">
<style>
rect{
fill:#42A5F5;
stroke:black;
}
</style>
<body>
<svg width="960" height="500">
<g id="default" transform="translate(40, 50)"></g>
<g id="custom" transform="translate(520, 50)"></g>
</svg>
<script src="https://d3js.org/d3.v4.min.js"></script>
<script src="//vizjs.org/viz.v1.1.7.min.js"></script>
<script>
var data=[['A', 3, 'x'],['A', 5, 'y'],['B', 2, 'x'],['C', 2, 'x'],['C', 4, 'y'],['D', 3, 'y']];
d3.select("#default").call(viz.bar().data(data));
var sortorder = ['C','A','D','B'];
function sort(a,b) { return d3.ascending(sortorder.indexOf(a),sortorder.indexOf(b));}
var bar = viz.bar().data(data).sortPrimary(sort);
d3.select("#custom").call(bar);
</script>