You cannot force rows to go from edge to border with the discrete (row-based) x axis. If you switch to the continuous axis (number, date, date and time, time of day), you can add one line before your real data, and one line after it contains the target lines (and zeros for other data series):
function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('number', 'Quarter'); data.addColumn('number', 'Value 1'); data.addColumn('number', 'Value 2'); data.addColumn('number', 'Value 3'); data.addColumn('number', 'Goal 1'); data.addColumn('number', 'Goal 2'); data.addRows([ [0, null, null, null, 10, 14], [1, 5, 4, 7, null, null], [2, 6, 9, 6, null, null], [3, 2, 6, 4, null, null], [5, null, null, null, 10, 14] ]); var chart = new google.visualization.ComboChart(document.querySelector('#chart_div')); chart.draw(data, { height: 400, width: 600, isStacked: true, legend: { position: 'top' }, seriesType: 'bars', interpolateNulls: true, series: { 3: { type: 'line' }, 4: { type: 'line' } }, hAxis: { format: 'Q#', ticks: [1, 2, 3, 4], viewWindow: { min: 0.5, max: 4.5 } }, chartArea: { left: '10%', width: '80%' } }); } google.load('visualization', '1', {packages:['corechart'], callback: drawChart});
See a working example: http://jsfiddle.net/asgallant/W67qU/