JavaScript
var margin = {top: 50, right: 50, bottom: 120, left: 70};
var svg = "#chart svg";
var normalisedData = [{"key":"Data 1","type":"line","yAxis":1,"values":[{"x":0,"y":0},{"x":1,"y":1},{"x":2,"y":0},{"x":3,"y":3},{"x":4,"y":0},{"x":5,"y":1}]},{"key":"Data 2","type":"line","yAxis":1,"values":[{"x":0,"y":1},{"x":1,"y":2},{"x":2,"y":1},{"x":3,"y":1},{"x":4,"y":2},{"x":5,"y":0}]},{"key":"Data 3","type":"line","yAxis":1,"values":[{"x":0,"y":0},{"x":1,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":2},{"x":5,"y":0}]},{"key":"Data 4","type":"bar","yAxis":2,"values":[{"x":0,"y":0},{"x":1,"y":0},{"x":2,"y":0},{"x":3,"y":0},{"x":4,"y":440},{"x":5,"y":0}]},{"key":"Data 5","type":"bar","yAxis":2,"values":[{"x":0,"y":1140},{"x":1,"y":4120},{"x":2,"y":2060},{"x":3,"y":2060},{"x":4,"y":7055},{"x":5,"y":0}]},{"key":"Data 6","type":"bar","yAxis":2,"values":[{"x":0,"y":0},{"x":1,"y":8000},{"x":2,"y":0},{"x":3,"y":13797},{"x":4,"y":0},{"x":5,"y":865.18}]}];
var axisKeys = ["2014-Jan","2014-Feb","2014-Mar","2014-Apr","2014-May","2014-Jun"];
nv.addGraph(function() {
var chart = nv.models.multiChart()
.options({reduceXTicks:false})
.margin(margin)
.color(d3.scale.category10().range())
;
chart.xAxis
.tickFormat(function(d){
// If there is such element, return it
if(typeof axisKeys[d] !== "undefined"){
return axisKeys[d];
}
return "";
});
// Get normalised data for chart
var seriesData = normalisedData;
// Get max values for each axis
var minY1 = 0;
var minY2 = 0;
var maxY1 = 0;
var maxY2 = 0;
for(var i = 0; i < seriesData.length; i++) {
var _axis = seriesData[i].yAxis;
var _values = seriesData[i].values;
// Walk values and set largest to variables
for(var j = 0; j < _values.length; j++) {
// For maxY1
if(_axis == 1) {
if(_values[j].y > maxY1) {
...