| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 | <!DOCTYPE HTML><html>	<head>		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">		<meta name="viewport" content="width=device-width, initial-scale=1">		<title>Highcharts Example</title>		<style type="text/css">#container {    height: 400px;     min-width: 310px;     max-width: 800px;    margin: 0 auto;}		</style>	</head>	<body><script src="../../code/highcharts.js"></script><script src="../../code/highcharts-3d.js"></script><script src="../../code/modules/exporting.js"></script><script src="../../code/modules/export-data.js"></script><div id="container" style="height: 500px"></div>		<script type="text/javascript">// Give the points a 3D feel by adding a radial gradientHighcharts.setOptions({    colors: Highcharts.getOptions().colors.map(function (color) {        return {            radialGradient: {                cx: 0.4,                cy: 0.3,                r: 0.5            },            stops: [                [0, color],                [1, Highcharts.Color(color).brighten(-0.2).get('rgb')]            ]        };    })});// Set up the chartvar chart = new Highcharts.Chart({    chart: {        renderTo: 'container',        margin: 100,        type: 'scatter3d',        animation: false,        options3d: {            enabled: true,            alpha: 10,            beta: 30,            depth: 250,            viewDistance: 5,            fitToPlot: false,            frame: {                bottom: { size: 1, color: 'rgba(0,0,0,0.02)' },                back: { size: 1, color: 'rgba(0,0,0,0.04)' },                side: { size: 1, color: 'rgba(0,0,0,0.06)' }            }        }    },    title: {        text: 'Draggable box'    },    subtitle: {        text: 'Click and drag the plot area to rotate in space'    },    plotOptions: {        scatter: {            width: 10,            height: 10,            depth: 10        }    },    yAxis: {        min: 0,        max: 10,        title: null    },    xAxis: {        min: 0,        max: 10,        gridLineWidth: 1    },    zAxis: {        min: 0,        max: 10,        showFirstLabel: false    },    legend: {        enabled: false    },    series: [{        name: 'Reading',        colorByPoint: true,        data: [            [1, 6, 5], [8, 7, 9], [1, 3, 4], [4, 6, 8], [5, 7, 7], [6, 9, 6],            [7, 0, 5], [2, 3, 3], [3, 9, 8], [3, 6, 5], [4, 9, 4], [2, 3, 3],            [6, 9, 9], [0, 7, 0], [7, 7, 9], [7, 2, 9], [0, 6, 2], [4, 6, 7],            [3, 7, 7], [0, 1, 7], [2, 8, 6], [2, 3, 7], [6, 4, 8], [3, 5, 9],            [7, 9, 5], [3, 1, 7], [4, 4, 2], [3, 6, 2], [3, 1, 6], [6, 8, 5],            [6, 6, 7], [4, 1, 1], [7, 2, 7], [7, 7, 0], [8, 8, 9], [9, 4, 1],            [8, 3, 4], [9, 8, 9], [3, 5, 3], [0, 2, 4], [6, 0, 2], [2, 1, 3],            [5, 8, 9], [2, 1, 1], [9, 7, 6], [3, 0, 2], [9, 9, 0], [3, 4, 8],            [2, 6, 1], [8, 9, 2], [7, 6, 5], [6, 3, 1], [9, 3, 1], [8, 9, 3],            [9, 1, 0], [3, 8, 7], [8, 0, 0], [4, 9, 7], [8, 6, 2], [4, 3, 0],            [2, 3, 5], [9, 1, 4], [1, 1, 4], [6, 0, 2], [6, 1, 6], [3, 8, 8],            [8, 8, 7], [5, 5, 0], [3, 9, 6], [5, 4, 3], [6, 8, 3], [0, 1, 5],            [6, 7, 3], [8, 3, 2], [3, 8, 3], [2, 1, 6], [4, 6, 7], [8, 9, 9],            [5, 4, 2], [6, 1, 3], [6, 9, 5], [4, 8, 2], [9, 7, 4], [5, 4, 2],            [9, 6, 1], [2, 7, 3], [4, 5, 4], [6, 8, 1], [3, 4, 0], [2, 2, 6],            [5, 1, 2], [9, 9, 7], [6, 9, 9], [8, 4, 3], [4, 1, 7], [6, 2, 5],            [0, 4, 9], [3, 5, 9], [6, 9, 1], [1, 9, 2]]    }]});// Add mouse and touch events for rotation(function (H) {    function dragStart(eStart) {        eStart = chart.pointer.normalize(eStart);        var posX = eStart.chartX,            posY = eStart.chartY,            alpha = chart.options.chart.options3d.alpha,            beta = chart.options.chart.options3d.beta,            sensitivity = 5,  // lower is more sensitive            handlers = [];        function drag(e) {            // Get e.chartX and e.chartY            e = chart.pointer.normalize(e);            chart.update({                chart: {                    options3d: {                        alpha: alpha + (e.chartY - posY) / sensitivity,                        beta: beta + (posX - e.chartX) / sensitivity                    }                }            }, undefined, undefined, false);        }        function unbindAll() {            handlers.forEach(function (unbind) {                if (unbind) {                    unbind();                }            });            handlers.length = 0;        }        handlers.push(H.addEvent(document, 'mousemove', drag));        handlers.push(H.addEvent(document, 'touchmove', drag));        handlers.push(H.addEvent(document, 'mouseup', unbindAll));        handlers.push(H.addEvent(document, 'touchend', unbindAll));    }    H.addEvent(chart.container, 'mousedown', dragStart);    H.addEvent(chart.container, 'touchstart', dragStart);}(Highcharts));		</script>	</body></html>
 |