Ok, I think that what you need to do is use two separate intervals for the 25th-percentile to median and median to 75th-percentile, like this:
data.addColumn({id:'min', type:'number', role:'interval'}); // min
data.addColumn({id:'max', type:'number', role:'interval'}); // max
data.addColumn({id:'25th-to-med', type:'number', role:'interval'}); // 25th percentile
data.addColumn({id:'mid-to-75th', type:'number', role:'interval'}); // median
data.addColumn({id:'mid-to-75th', type:'number', role:'interval'}); // 75th percentiledata.addColumn({id:'25th-to-med', type:'number', role:'interval'}); // median
data.addColumn({id:'value', type:'number', role:'interval'}); // current valueThe median value needs to be part of two different intervals, and for some reason I have not yet fathomed, intervals must be nested (I suspect that this is a bug). I gave them semantic id's to make them easier to differentiate. You can use a DataView to put the median in two separate columns rather than include it in your DataTable twice, if you'd prefer:
var view = new google.visualization.DataView(data);
view.setColumns([0, 1, 2, 3, {
type: 'number',
sourceColumn: 4,
id: '25th-to-med',
role: 'interval'
}, {
type: 'number',
sourceColumn: 5,
id: 'med-to-75th',
role: 'interval'
}, {
type: 'number',
sourceColumn: 6,
id: 'med-to-75th',
role: 'interval'
}, {
type: 'number',
sourceColumn: 5,
id: '25th-to-med',
role: 'interval'
}, 7]);jsfiddle example:
http://jsfiddle.net/asgallant/A2zxv/