2017-10-19 139 views
0

当我点添加到我的一系列柱形图动画看起来可怕,新列只是出现在右边,然后一切在多张幻灯片,以适应他们。例如:http://jsfiddle.net/jamesredwood/a0p4pqe8/与series.addPoint动画效果Highcharts列()

如果新数据可以添加到视图中,并且在同时其他所有内容都会移动的同时滑入视图,则会更好。

有什么办法可以达到这个目的吗?

Highcharts.chart('container', { 
chart: { 
    type: 'column', 
    margin: [70, 50, 60, 80], 
    events: { 
     click: function (e) { 
      // find the clicked values and the series 
      var x = Math.round(e.xAxis[0].value), 
       y = Math.round(e.yAxis[0].value), 
       series = this.series[0]; 

      // Add it 
      series.addPoint([x, y]); 

     } 
    } 
}, 
title: { 
    text: 'User supplied data' 
}, 
subtitle: { 
    text: 'Click the plot area to add a point. Click a point to remove it.' 
}, 
xAxis: { 
    gridLineWidth: 1, 
    minPadding: 0.2, 
    maxPadding: 0.2, 
    maxZoom: 60 
}, 
yAxis: { 
    title: { 
     text: 'Value' 
    }, 
    minPadding: 0.2, 
    maxPadding: 0.2, 
    maxZoom: 60, 
    plotLines: [{ 
     value: 0, 
     width: 1, 
     color: '#808080' 
    }] 
}, 
legend: { 
    enabled: false 
}, 
exporting: { 
    enabled: false 
}, 
plotOptions: { 
    series: { 
     lineWidth: 1, 
     point: { 
      events: { 
       'click': function() { 
        if (this.series.data.length > 1) { 
         this.remove(); 
        } 
       } 
      } 
     } 
    } 
}, 
series: [{ 
    data: [[20, 20], [80, 80]] 
}] 

});

+0

我真的很喜欢它,如果新的数据可能只是从右侧滑入 - 它看起来可怕的路,它只是看起来那么后,现有数据的变化已经出现 –

回答

0

您可以在适当的地方以0值加点Y,找到它的所有点之间的指数和更新Point.update功能的Y值,获取升级的动画。看看下面的例子。

API参考:
https://api.highcharts.com/class-reference/Highcharts.Series.html#addPoint
https://api.highcharts.com/class-reference/Highcharts.Point#update

例子:
http://jsfiddle.net/m3atf59f/

+0

感谢您的回答,这不是很明白我的意思,虽然。你的回答来自这是一种进步底部动画中,但我多系列条形图所以它仍然看起来笨重。酒吧仍然在现有酒吧上动画,然后向左滑动。 我非常希望新的酒吧刚刚从右边的老数据移动滑入。 –