Javascript 使用highcharts添加和删除交叉数据

Javascript 使用highcharts添加和删除交叉数据,javascript,php,json,highcharts,Javascript,Php,Json,Highcharts,更新->这里是问题所在 我的大脑在这里有点僵硬。 我尝试从highcharts对象中添加和删除不同类型的数据。我知道这项技术,但就在这里,我不知道如何交叉我的数据。 下面是我的php文件,它提供了我的数据(带有json) 然后我像这样创建我的图表 $.each(data.categories, function(key, value){ var series = {}; series.name = key; series.da

更新->这里是问题所在

我的大脑在这里有点僵硬。 我尝试从highcharts对象中添加和删除不同类型的数据。我知道这项技术,但就在这里,我不知道如何交叉我的数据。 下面是我的php文件,它提供了我的数据(带有json)

然后我像这样创建我的图表

$.each(data.categories, function(key, value){                       
    var series = {};
    series.name = key;
    series.data = value;                        
    options.series.push(series);    
})

$.each(data.champions, function(key, value){                        
    var categories = [];
    options.xAxis.categories.push(value);
})

var chart = new Highcharts.Chart(options);
没问题,我有一个x轴,上面有我的角色名和系列“健康”、“法力”等的值。。。在柱状图中。 问题是,我想通过复选框添加或删除一些字符数据。我创建复选框

var mesRadio = document.getElementById('monForm');
var mesCheksBoxes = '';    
for (var i = 0; i < data.champions.length; i++) {                       
    mesCheksBoxes += '<label>'+data.champions[i]+'<input type="checkbox" class="choice" name="choice-'+i+'" value="'+data.champions[i]+'"></label>';
};                  
mesRadio.innerHTML = mesCheksBoxes;
var mesRadio=document.getElementById('monForm');
变量mescheksbox='';
对于(var i=0;i
这是我的,我冻僵了。我想发送由我的字符名(数组冠军)绑定的系列(数组类别)的数据和名称。但我不知道哪种方法是正确的。 如果有人有一些想法和一些线索,我可以遵循,那将是伟大的。
谢谢

如果要添加或删除它们,请使用:

  • -注意:如果删除索引为0的系列,则索引为1的系列将取而代之。您可以向每个系列添加
    id
    ,然后使用
    chart.get(id)
    ,而不是使用索引,以获取要删除的系列
或者你只是想在图表中隐藏序列?然后简单使用:

第二个解决方案要容易得多


注意:要隐藏/显示/添加/删除序列,您需要在每个复选框和回调更新图表中添加事件。

Ho是的,您的id想法很好,我正在尝试。我的全部问题不是如何隐藏/删除/添加序列,而是如何交叉我的2个数组的数据,以便根据我的数组2(冠军)的索引隐藏/显示或删除/添加我的数组1(类别)的数据。我正在挖掘,谢谢你的提示:)也许不用
数据。在值方面,使用简单的索引,而不是[I]
?然后使用该索引可以隐藏/显示特定索引。老实说,如果您可以使用一些静态数据创建JSFIDLE演示(作为一个示例),这将非常有帮助:)是的,这里是:我在json调用中保留注释。我通常在js中构建我的复选框。谢谢,这个演示非常有用。不幸的是,您无法在Highcharts(如Character 2)中隐藏完整类别-仅在legend中这样的系列中隐藏。但是,您可以实现如下内容:-这不是一个完美的解决方案,而是一个很好的起点。另一种解决方案是使用
setextrems()
,但不幸的是,使用
setextrems()
解决方案,您只能隐藏最左边/最右边的字符。感谢您的解决方案。不幸的是,我尝试了另一种安排数据的方法:我使用highchats API来添加/删除数据。到目前为止似乎很好,我正在挖掘这个解决方案。尽管如此,您的脚本对于我想在这个项目中进行的其他更新还是有帮助的。再次感谢。PS:我想你是对的,我们不能用我的第一种方法处理安全的解决方案;附加字符串而不是数组。换句话说,您实现了类似series.data=“[380442472]”的功能。但是我的图表采用了良好的数据。我的角色1获得380点法力,我的角色2442点法力等等…好吧,这很有意义,谢谢
var mesRadio = document.getElementById('monForm');
var mesCheksBoxes = '';    
for (var i = 0; i < data.champions.length; i++) {                       
    mesCheksBoxes += '<label>'+data.champions[i]+'<input type="checkbox" class="choice" name="choice-'+i+'" value="'+data.champions[i]+'"></label>';
};                  
mesRadio.innerHTML = mesCheksBoxes;