Highcharts主细节图未呈现第二系列
Highcharts Master Detail Chart not rendering 2nd series
我在设置主细节图表时遇到问题。最初,主图和细节图都绘制了线序列和误差条序列。但是,当在主体上选择新范围时,只有"线"会在详图中绘制。(尽管Master仍然同时绘制)
我添加了一个JSFiddle:http://jsfiddle.net/binpower93/za46Y/1/.
我相信这个错误与Highcharts有关,尽管它可能是由以下代码块引起的:
selection: function (event) {
var extremesObject = event.xAxis[0],
min = extremesObject.min,
max = extremesObject.max,
detailData = [],
xAxis = this.xAxis[0];
// reverse engineer the last part of the data
jQuery.each(this.series, function (i, series) {
var data = [];
jQuery.each(series.data, function (i, point) {
if (point.x > min && point.x < max) {
data.push({
x: point.x,
y: point.y
});
}
});
detailData.push(data);
});
// move the plot bands to reflect the new detail span
xAxis.removePlotBand('mask-before');
xAxis.addPlotBand({
id: 'mask-before',
from: firstUTC,
to: min,
color: 'rgba(0, 0, 0, 0.2)'
});
xAxis.removePlotBand('mask-after');
xAxis.addPlotBand({
id: 'mask-after',
from: max,
to: lastUTC,
color: 'rgba(0, 0, 0, 0.2)'
});
jQuery.each(detailChart.series, function (i, series) {
detailChart.series[i].setData(detailData[i]);
});
return false;
}
}
},
问题是错误序列需要x/y/高/低值,而不仅仅是x/y。所以,当为第二个系列设置数据时,需要计算一些NaN。
解决这个问题的简单方法:
data.push({
x: point.x,
y: point.y,
high: point.high,
low: point.low
});
固定示例:http://jsfiddle.net/za46Y/2/
小建议:当设置更多数据/添加更多点或系列时,禁用重绘,并调用它们一次,如下所示:
jQuery.each(detailChart.series, function (i, series) {
series.setData(detailData[i], false);
});
detailChart.redraw();
相关文章:
- 动态更改高图中的系列颜色
- Highcharts colorsByPoint与系列中的线性渐变一起使用时不起作用
- chart.series[id].remove()无法刷新高位图表/高位股票中其他系列的图例属性
- 如何在master中调用细节网格作为单击事件
- async.js和系列问题
- 谷歌图表堆叠柱状图.如何设置每个单独堆叠项目(数据系列)的样式
- 在Ionic'中显示JSON结果;s系列重复
- 如何在tinymce编辑器中启用字体系列和颜色选项
- 如何在系列数据中包含字符串以提取工具提示点格式
- 访问Highcharts系列的最小/最大值:afterSetExtremes不会激发
- Teechart HTML5/Javascript价值股票代码将保留在Tee.Line系列上
- 从特定系列的谷歌可视化折线图中删除悬停工具提示
- Highcharts系列.数据数据类型限制
- 图表:个人系列转换
- 谷歌位置api获取细节,并不是每个地方都返回
- 谷歌图表-需要x和y值and系列
- Highcharts显示系列名称,但缺少json源中的数据点
- 记住在剑道UI中刷新时展开的细节网格
- X轴范围根据隐藏的系列进行更改
- Highcharts主细节图未呈现第二系列