CHARTS - Funnel - Working #2 - BIZAMAJIG STARTING POINT
by bizamajig
HTML
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css">
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="https://raw.github.com/highslide-software/highcharts.com/master/js/modules/funnel.src.js"></script>
<div id="resizer" style="min-width: 350px; min-height: 200px; width: 600px">
<div id="inner-resizer">
<div id="container" style="height: 400px;"></div>
</div>
</div>
CSS
#resizer {
border: 1px solid silver;
}
#inner-resizer {
/* make room for the resize handle */
padding: 10px;
}
JavaScript
$(function () {
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
//type: 'funnel',
marginRight: 100
},
title: {
text: 'Sales funnel'
},
plotArea: {
shadow: null,
borderWidth: null,
backgroundColor: null
},
plotOptions: {
series: {
dataLabels: {
enabled: true,
format: '<b>{point.name}</b> ({point.y:,.0f})',
color: 'black',
softConnector: true
},
neckWidth: '30%',
neckHeight: '25%',
allowPointSelect: false,
enableMouseTracking: true,
allowPointSelect: true,
point: {
events: {
select: function () {
alert('selected p');
}
}
}
}
},
legend: {
enabled: false
},
series: [{
type: 'funnel',
name: 'Unique users',
data: [
['Website visits', 15654],
['Downloads', 4064],
['Requested price list', 1987],
['Invoice sent', 976],
['Finalized', 846]
]
}]
});
// Add the jQuery UI resizin
var container = $('#container')[0];
$('#resizer').resizable({
// On resize, set the chart size to that of the
// resizer minus padding. If your chart has a lot of data or other
// content, the redrawing might be slow. In that case, we recommend
// that you use the 'stop' event instead of 'resize'.
resize: function () {
chart.setSize(
this.offsetWidth - 20,
this.offsetHeight - 20,
false);
}
...