我正在使用带有多个条形图的高级图表..我想要的是我复制图表在特定按钮上的加载效果点击...我尝试了下面的代码
$('#container').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Monthly Average Rainfall'
},
subtitle: {
text: 'Source: WorldClimate.com'
},
xAxis: {
categories: [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec'
],
crosshair: true
},
yAxis: {
min: 0,
title: {
text: 'Rainfall (mm)'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: 'Tokyo',
data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}, {
name: 'New York',
data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]
}, {
name: 'London',
data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]
}, {
name: 'Berlin',
data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]
}]
});
function redrawing()
{
$('#container').highcharts().redraw();
}
但这不起作用。我不想改变图表中的任何数据或任何内容。我想要的是它在我点击按钮时重新加载。
答案 0 :(得分:0)
建议的方法是销毁然后重新创建图表: http://forum.highcharts.com/highcharts-usage/animation-on-redraw-t8636/#p93199
这里有一个显示这个工作的小提琴: http://jsfiddle.net/p7xerxh0/1/
function redraw() {
$('#container').highcharts().destroy();
createChart(); // wrap your creation code in a function and call it again
}
答案 1 :(得分:0)
我准备了一个演示,允许“再次开始动画”并停止/暂停。
var H = Highcharts,
c = $('#container').highcharts(),
chart = c;
H.Series.prototype.afterAnimate = function() {};
function reAnimate(fromStart) {
// store animation:
var seriesAnimate = H.Series.prototype.animate;
var columnAnimate = H.seriesTypes.column.prototype.animate;
var pieAnimate = H.seriesTypes.pie.prototype.animate;
// run animation again: tested with line chart only
H.each(c.series, function (s) {
if (animation && !isObject(animation)) {
animation = defaultPlotOptions[series.type].animation;
}
var animation = s.options.animation,
clipBox = s.clipBox || c.clipBox,
sharedClipKey = ['_sharedClip', animation.duration, animation.easing, clipBox.height].join(','),
clipRect = c[sharedClipKey],
markerClipRect = c[sharedClipKey + 'm'];
if (fromStart) {
if (clipRect) {
clipRect.attr({
width: 0
});
}
if (markerClipRect) {
markerClipRect.attr({
width: 0
});
}
}
s.animate = s.type == 'pie' ? pieAnimate : (s.type == 'column' ? columnAnimate : seriesAnimate);
//s.animate(true);
s.animate();
});
}
function isObject(obj) {
return obj && typeof obj === 'object';
}