作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当新数据的列(类别)比以前少时,我在更新 highcharts 图表时遇到问题。
fiddle :http://jsfiddle.net/ggoforth/bZAF7/
假设我有一个类似的图表:
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column'
},
xAxis: {
categories: ['pizza', 'french fries']
},
series: [{
data: [55, 32]
}]
});
这将呈现一个包含两列的柱形图。然后,通过某个按钮我执行以下操作:
chart.series[0].setData([55, 32, 17], false);
chart.xAxis[0].setCategories(['pizza', 'french fries', 'nachos'], false);
chart.redraw();
这将更新图表以具有三列。这一切都很好。但是,如果稍后我再次刷新包含 2 列的图表:
chart.series[0].setData([55, 32], false);
chart.xAxis[0].setCategories(['pizza', 'french fries'], false);
chart.redraw();
我收到错误“选项未定义”。这是可重现的,并且这里有一个 fiddle 演示了这个问题:http://jsfiddle.net/ggoforth/bZAF7/
在设置新数据之前,我需要先在图表上进行某种“重置”吗?就像我说的,它在从 2 列 -> 3 列时有效,但反之则不然。
感谢您的帮助!
最佳答案
您可以删除以下行:
chart.xAxis[0].setCategories(['pizza', 'french fries'], false);
<强> Demo
正如您所看到的,问题在于您的新数据不能少于类别数,因此您必须先更新类别,然后再更新系列。就像下面的例子。
http://jsfiddle.net/bZAF7/6/
因此,要解决此问题,您必须反转以下几行。
chart.series[0].setData([55, 32], false);
chart.xAxis[0].setCategories(['pizza', 'french fries'], false);
更新:正如 Greg 在评论中所说,这是 Highcharts https://github.com/highslide-software/highcharts.com/issues/970 的一个错误可能它已在最新的 Highcharts 版本中得到修复。
关于jquery - highcharts - 更新系列以使其类别比以前少时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10657942/
我是一名优秀的程序员,十分优秀!