highcharts - Highcharts图表更新功能导致数据点缺失
问题描述
我用来自谷歌电子表格的数据和按钮单击时的图表更新功能构建了一个面积图:见小提琴
图表更新功能更改图表中显示的电子表格的列:
$(document).ready(function(){
$("#total").click(function(){
var chart = $('#container').highcharts();
chart.update({
yAxis: [{
min: -6000,
max: 6000,
tickPositions: [0, 2000, 4000, 6000]
},
{
min: -600,
max: 600,
tickPositions: [200, 400, 600]
}],
data: {
seriesMapping: [{
x: 0,
y: 1,
case_bis4: 2,
case_5bis14: 3,
case_15bis34: 4,
case_35bis59: 5,
case_60bis79: 6,
case_ab80: 7,
death_total: 8,
death_bis4: 9,
death_5bis14: 10,
death_15bis34: 11,
death_35bis59: 12,
death_60bis79: 13,
death_ab80: 14
},
{
x: 0,
y: 8,
case_total: 1,
case_bis4: 2,
case_5bis14: 3,
case_15bis34: 4,
case_35bis59: 5,
case_60bis79: 6,
case_ab80: 7,
death_bis4: 9,
death_5bis14: 10,
death_15bis34: 11,
death_35bis59: 12,
death_60bis79: 13,
death_ab80: 14
}]
}
});
});
});
不幸的是,每次单击按钮时,都会丢失一个数据点。什么地方出了错?
解决方案
感谢您的分享。这对我来说似乎是一个错误,我在 Highcharts Github 问题频道上报告了它,您可以在其中关注此线程:https ://github.com/highcharts/highcharts/issues/14189
据我了解,您想创建一个自定义图例,我认为它可以通过不同的方式实现(以避免chart.data
更新)。我的想法是循环浏览整个系列并隐藏或显示它们。
这是一个简单的演示:https ://jsfiddle.net/BlackLabel/emyq7j94/ - 您可以通过单击ab80
和60 bis 79
来测试它alle
。
每个按钮都会触发类似的功能(您可以将其保存为出色的功能):
chart.series.forEach((s, i) => {
if (i !== 5 && i !== 12) {
s.hide()
} else {
s.show()
s.update({
visible: true
}, false)
}
})
推荐阅读
- python - 如何读取 txt 文件并解析数据以在 tkinter GUI 中显示
- c++ - C++ 到汇编
- django - 如何为 Django 项目制作 Nginx 配置文件?
- fedora - 从 Fedora 30 更新到 Fedora 31
- c++ - 如何解决这个问题?二进制表达式的无效操作数
- c# - Cosmonaut (CosmosDb) - 查询不起作用
- flutter - 为什么除以零不会在 Dart 中崩溃?
- excel - 如何使用每个循环将范围复制到另一个工作表?
- android-studio - PieChart 图例仅显示 MP Android Chart 中绘制的 12 个类别中的 1 个
- c++ - 如何收集数组中函数的每个参数?