Highcharts/Typescript:如何使用scatter3d旋转?
因此,我从“Highcharts”中将“Highcharts/Typescript:如何使用scatter3d旋转?,typescript,highcharts,Typescript,Highcharts,因此,我从“Highcharts”中将“import*作为Highcharts”和我的Highchartschart:any放在.ts文件中,而不是.js文件中 该图表是一个散点3D(三维)。我想让它可以旋转。在JavaScript中,它通过使用 (function(H) { function dragStart(eStart) { eStart = chart.pointer.normalize(eStart); var posX = eStart.chartX,
import*作为Highcharts”
和我的Highchartschart:any
放在.ts文件中,而不是.js文件中
该图表是一个散点3D(三维)。我想让它可以旋转。在JavaScript中,它通过使用
(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));
如官方演示所示:
但这在typescript中不起作用。我如何重写它以使scatter3d图表可旋转?您必须加载并初始化
highcharts-3d
模块,如下所示:
import * as Highcharts from "highcharts/highcharts";
import * as Highcharts3d from "highcharts/highcharts-3d";
Highcharts3d(Highcharts);
要使其可旋转,只需在加载图表后使用例如chart callback添加此功能
查看下面发布的演示,其中使用了一个Angular应用程序示例highcharts Angular
(官方highcharts包装)。可在此下载:
演示(图表呈现不正确时重新加载视图-codesandbox问题):